MySQL索引建立原则

本文介绍了MySQL索引的建立原则,如选择查询频次高、数据量大的表建立索引,遵循最左前缀法则创建复合索引,并强调了唯一性和短索引的重要性。同时,文章讨论了如何避免索引失效,包括遵循最左前缀法则,避免在索引上使用运算,使用覆盖索引,以及理解在特定查询条件下索引的使用情况。
摘要由CSDN通过智能技术生成

一. 索引的建立原则

索引的设计需要遵循一些已有的原则, 这样便于提升索引的使用效率, 更高效的使用索引.

  1. 对查询频次较高, 且数据量比较大的表, 建立索引.

  2. 索引字段的选择, 最佳候选列应当从where子句的条件中提取, 如果where子句中的组合比较多, 那么应当挑选最常用, 过滤效果最好的列的组合.

  3. 如果where后有多个条件经常被用到, 建议建立符合 索引, 复合索引需要遵循最左前缀法则, N个列组合而成的复合索引, 相当于创建了N个索引.

复合索引命名规则 index_表名_列名1_列名2_列明3

比如:create index idx_seller_name_sta_addr on tb_seller(name, status, address)

复合索引需要遵循最左前缀法则, N个列组合而成的复合索引, 相当于创建了N个索引. 最左前缀法则后面会详细介绍~

  1. 使用唯一索引, 区分度越高, 使用索引的效率越高.

  2. 索引并非越多越好, 如果该表赠,删,改操作较多, 慎重选择建立索引, 过多索引会降低表维护效率.

  3. 使用短索引, 提高索引访问时的I/O效率, 因此也相应提升了Mysql查询效率.

  4. 多表连接的字段上需要建立索引,这样可以极大提高表连接的效率.

  5. 排序字段上, 因为排序效率低, 添加索引能提高查询效率.

二.如何避免索引失效

  1. 遵循最左前缀法则

如果在查询的时候, 使用了复合索引, 要遵循最左前缀法则, 也就是查询从索引的最左列开始, 并且不能跳过索引中的列.如果不包含最左边的索引列, 则其他索引不生效;如果包含了最左边的索引列, 但是跳过了一列直接索引了复合索引的第三列, 则第三列的索引不生效.

  1. 不要在索引上使用运算,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值