索引规则

索引规则


(1)选择唯一性索引。唯一性索引能快速从索引中定位到值,过多相同的值会降低查询效率。
(2)为经常排序,分组,联合查询(外键)的字段建立索引。排序操作会浪费很多时间,建立索引可以有效避免排序操作。
(3)为经常查询的字段建立索引。经常查询的字段会影响整个表的查询速度,为该字段建立索引能提高整表的查询速度。
(4)尽量使用数据量少的索引字段。char(100)字段进行全文检索明显比char(10)索引花费时间要多。
(5)限制索引的数量,索引并不是越多越好,索引需要存储,消耗磁盘空间,同时对于修改更新数据需要重建索引带来额外的消耗与麻烦。
(6)尽量使用前缀来索引。如果索引的字段很长,只能放text或blog,进行全文检索耗费时间会很长。如果只是检索字段前面的值会提高检索速度。
(7)删除不再使用或很少使用的索引。索引会占用磁盘空间与影响数据的更新,删除这些索引能减少对数据更新的影响。
(8)最左前缀匹配原则,很重要的原则。mysql会一直向右匹配制导遇到范围查询(> < between like)就停止匹配。例如查询a=1,b=5,c<8,d=9,同时建立了(a,b,c,d)复合索引,d是用不到索引的。如果建立(a,b,d,c)顺序索引a,b,d顺序可以任意调整。
(9)=和in可以乱序。例如查询a=1,b=5,c=9.建立(a,b,c)索引可以任意顺序。sql查询优化器会将a,b,c顺序调整成可以识别的顺序。
(10)尽量选择区分度高的列作为索引。选择重复值少的列作为索引查询速度会更快。
(11)索引列不能参与运算,要保持干净。参与计算的列不能运用索引,原因是如果使用索引b+树每一个值都要应用函数才能比较,显然成本会很高。
(12)尽量尽量扩展索引,不要新建索引。比如表中已经有了a索引,现在要加(a,b)索引,那么只要修改原索引即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值