mysql高性能索引

1.高性能的索引策略
a.独立的列:
独立的列是指索引不能是表达式的一分部,也不能是函数的参数
如:select * from yz_user where id+1=5
b.前缀索引和索引的选择性
前缀索引:有时候设定很长的字符列为索引,会让索引变得大且慢,有2个策略解决,一种就是建立哈希索引,另一种就是选择某个列的部分前缀作为索引设立,对于BLOB,TEXT,很长的Varchar类型的列,必须使用前缀索引。要设计前缀索引,要考虑足够长的前缀以保证较高的选择性和区别性,同时也不能太长(节约空间),前缀的选择性应该接近于索引的整个列。
前缀索引的创建:alter table t_accounts_rule add index(doctor_name(5))
当然前缀索引也有其缺点,mysql无法使用前缀索引做order by 和 group by,也无法使用前缀索引做覆盖扫描
c.多列索引
不是把表的每个列都加上索引会增加速度,而是选择区分性大的列会更好,因为mysql会选择每次(select )查询一个表只会使用一个索引,有的索引不是最优索引。
d.选择合适的索引列顺序
多列索引当不考虑排序和分组的时候,将选择性最高的索引列(区分度大)放在前面是最好的。
e.覆盖索引
如果一个索引包含或者覆盖所有的需要查询的字段只需要扫描索引而无需回查表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值