索引的使用

一、索引的使用原则:

1、最左前缀法则(针对于联合索引查询)
在这里插入图片描述
创建的索引:

create index idx_user_pro_age_sta ON tb_user(profession,age,status);

查询语句:
在这里插入图片描述
运用explain命令可以查看以上查询是否用到索引:
第一、二、三条:几个字段都用到索引
第四、五个:就没有用索引去查
导致结果:查看explain中type字段,可以看到性能比较低

2、范围查询
在这里插入图片描述
优化:用>=、<=代替>、<

3、索引列运算

前提:phone字段添加了索引
在这里插入图片描述
执行上面的explain语句,看到type值为all;全表查询,性能很低,没有用到索引

4、字符串不加引号
在这里插入图片描述
5、模糊查询,头部模糊匹配(查询时的like语句)
在这里插入图片描述
在这里插入图片描述
上面的前一个会用到索引,后两个就不会用到索引

6、or连接的条件:or前后的字段都需要是添加了索引的
在这里插入图片描述
7、数据分布影响
在这里插入图片描述
8、SQL提示
在这里插入图片描述
use index:建议使用
ignore index:忽略指定
force index:强制使用

9、覆盖索引
在这里插入图片描述

需要查询时尽量使用能一次查询出需要信息的索引。 聚集索引,返回一列的数据 辅助索引,返回主键id和索引值

示例:
在这里插入图片描述
上面的第一个和第二个就可以查找一次得到数据
第三个就需要回表查询,才能得到全部的信息:
第一次根据索引Arm,查到Arm和id值
需要再根据id去查找gender

10、前缀索引:需要对比较长的字符串创建索引时,截取前一部分进行索引,节约索引空间
语法:

create index idx_xxx on table_name(column(n))
n:表示前几个字符串

在这里插入图片描述
11、单列索引和联合索引
在这里插入图片描述

二、索引的设计原则

在这里插入图片描述

MySQL索引是一种数据结构,用于提高数据库查询的效率。使用索引可以快速定位到特定的数据行,而不必扫描整个数据表。下面是关于 MySQL 索引使用的一些常见问题和注意事项: 1. 什么是索引索引是按照一定的规则对表中的数据进行排序和组织的数据结构,以加快对数据的检索速度。它类似于书籍的目录,可以根据关键字快速找到所需的内容。 2. 如何创建索引? 在创建表时,可以指定某些列作为索引列。可以使用 CREATE INDEX 或 ALTER TABLE 命令来创建索引,也可以在创建表时使用 PRIMARY KEY 或 UNIQUE 约束来自动创建索引。 3. 为什么要使用索引使用索引可以大大提高查询的速度,尤其是在数据量较大时。它可以减少数据库查询操作需要扫描的数据量,从而缩短查询的响应时间。 4. 索引的类型有哪些? MySQL 支持多种类型的索引,包括主键索引、唯一索引、普通索引、全文索引等。每种类型的索引都有自己的应用场景和使用注意事项。 5. 如何选择合适的列创建索引? 通常情况下,选择经常被查询条件使用的列或者经常用于连接的列来创建索引是比较有效的。但是过多的索引也会增加数据更新的开销,因此需要根据实际情况进行权衡和选择。 6. 索引的优缺点是什么? 索引可以提高查询性能,但同时也会增加数据库的存储空间和维护成本。过多或不合理的索引可能导致查询性能下降、数据更新变慢等问题。因此,在创建索引时需要谨慎考虑。 这是一些关于 MySQL 索引使用的基本信息,如果你有具体的问题或者需要更详细的讨论,请提供更多上下文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值