mysql优化之高效索引

首先声明,非本人同意不得转载!!!

高效索引策略

 

1. 尽量使用组合索引

2. 尽量不要在索引列上使用函数

3. 前缀索引也是有效的,关键是确定索引的选择性

select count(DISTINCT left(address,3)) / count(*),

count(DISTINCT left(address,4)) / count(*),

count(DISTINCT left(address,5)) / count(*),

count(DISTINCT left(address,6)) / count(*),

count(DISTINCT left(address,7)) / count(*),

count(DISTINCT left(address,8)) / count(*),

count(DISTINCT left(address,9)) / count(*),

count(DISTINCT left(address,10)) / count(*)

from address;

4. 组合索引的顺序很重要:选择性越高的放在越前面,但要符合业务情况。

5. 覆盖索引的效率是很高的,MySQL只需要遍历一颗索引树就可以得到查询结果

 

 

Select id,name from tablename where name=’Rose’;

好处①:MySQL只需要读取索引

好处②:BTree索引是有序的,顺序的磁盘IO回避随机磁盘IO性能高

好处③:在某些引擎下,如:Myisam 在内存中只有索引,不需要读磁盘

好处④:在InnoDB中,减少一次索引树扫描(如果二级索引能够包含查询的所有列,则避免了再次扫描主键索引)

 

6. 索引排序,ORDER BY是可以利用索引的,组合索引同样可以作用在ORDER BY子句上。

7. Myisam可以压缩索引

8. 排除冗余索引和重复的索引

 

索引选择的三个原则

1. 单行访问是很慢的

2. 按顺序访问范围数据时很快的

3. 索引覆盖查询是很快的

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值