索引–加快MySQL查询

1.索引的描述

索引在MySQL中也叫做”键”,保存着数据位置的信息;

其作用是为了加快数据库的查询速度;

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

2.索引的使用

添加索引

alter table 表名 add index 索引名(字段名);

#案例

alter table classes add index my_name(name);
#给classes表中的name列添加名为my_name的索引

主键会自动创建索引,外键约束也会自动创建索引

删除索引

drop index 索引名 on 表名;

#案例

drop index my_name on classes;
#删除classes表中的my_name索引

添加联合索引

语法

联合索引又叫复合索引,是MySQL的InnoDB引擎中的一个索引方式,如果一个系统频繁地使用相同的几个字段查询结果,就可以考虑建立这几个字段的联合索引来提高查询效率。

alter table 表名 add index 索引名(字段名1,字段名2);

复制

最左前缀原则

在使用联合索引时要注意有个最左前缀原则,最左前缀原则就是要考虑查询的字段的顺序,只有遵守这个原则才能最大地提高查询的效率。

比如index(name,age)支持name或者name,age组合查询,不支持age单独查询

select * from students where name = '张三';                 #使用了联合索引
select * from students where name = '张三' and age = 10;    #使用了联合索引
select * from students where age = 10;                      #没有使用联合索引

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/5933

(0)
郭靖的头像郭靖
上一篇 2022年8月16日 下午6:17
下一篇 2022年8月17日 下午3:03

相关推荐

  • Elasticsearch Query DSL查询入门

    Query DSL又叫查询表达式,是一种非常灵活又富有表现力的查询语言,采用JSON接口的方式实现丰富的查询,并使你的查询语句更灵活、更精确、更易读且易调试 查询与过滤 Elasticsearch(以下简称ES)中的数据检索分为两种情况:查询和过滤。 Query查询会对检索结果进行评分,注重的点是匹配程度,例如检索“运维咖啡吧”与文档的标题有多匹配,计算的是…

    2023年5月26日
    74300
  • 内存耗尽后Redis会发生什么

    前言 作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理呢? 内存回收 使用Redis 服务时,很多情况下某些键值对只会在特定的时间内有效,为了防止这种类型的数据一直占有内存,我们可以给键值对设置有效期。Redis 中可以通过 4 个独立的命令来给一个键设置过…

    2023年7月17日
    62200
  • docker容器无法访问宿主机数据库

    今天用docker部署一个web服务时遇到总是连不上宿主机mysql数据库的问题,报SQLSTATE[HY000] [2002] Connection refused,经过测试,宿主机用相同配置可以连上,登入docker容器内就连不上,初步判断容器内通过localhost或127.0.0.1是连不上宿主机的。具体原因和解决方法如下: 原因: 今天用docke…

    2023年8月9日
    1.4K00
  • MySQL数据库断电修复(Database page corruption on disk or a failed)

    一、报错信息 启动日志如下: 看日志的大体的意思是数据页的损坏。 二、解决方案 2.1 修改配置  /etc/my.cnf 配置文件修改innodb 启动参数修改 如果innodb_force_recovery = 1不生效,则可尝试2-6几个数字。 然后重启mysql,重启成功。然后使用mysqldump或 pma 导出数据,执行修复操作等。修复完成后,把…

    2023年12月29日
    1.4K00
  • MySQL 用户管理和权限管理

    在项目中,一个数据库有很多人需要使用,不能所有的人都使用相同的权限,如果人比较多,一人一个用户也很难管理。一般来说,会分超级管理员权限,管理员权限,读写权限,只读权限等,这样方便管理。当然,具体怎么管理权限根据实际情况来确定。无论如何,都需要创建多个用户来管理权限。root 是数据库的超级管理员用户,对于普通开发人员来说,权限太大了,如果不小心做了一些不可逆…

    2022年6月9日
    1.3K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信