你的位置:首页 > 数据库

[数据库]索引优化策略


在表上创建索引后,如何使用到这些索引需要注意的问题。

 

1.索引列上不能使用表达式或函数。

例如:

select * from users where upper(name)=’ABC';

改成

select * from users where  name=’ABC';

 

2.前缀索引和索引列的选择性

索引的选择性越高索引效率越高。

 

3.联合索引

如何选择索引列的顺序

1.经常会被使用到的列优先

联合索引的列索引顺序是从左到右使用的。

2.选择性高的列优先

选择性很差的列不宜放到最左边。比如状态列。

3.宽度小的列优先

 

4.覆盖索引

索引中包含了所有查询的字段的情况的索引。

优点:

可以优化缓存,减少磁盘IO操作。

可以减少随机IO 变随机IO为顺序IO操作。

避免对INNODB主键索引的二次查询

可以避免myisam表进行系统调用

无法使用覆盖索引的情况:

1.存储引擎不支持覆盖索引

2.查询中使用了太多的列。

3.使用了双%号的like查询

 

5.使用索引扫描优化排序

  索引的列顺序和order by 子句的顺序完全一致

索引中所有列的方向(升序和降序)和order by 子句完全一致

order by 中 的字段全部在关联表中的第一张表中。

 

6.利用索引优化锁

1.索引可以减少锁定的行数

2.索引可以加快处理速度,同时加快锁的释放。

 

7.删除重复和冗余的索引

重复的索引:

比如:

primary key(id),unique key (id) ,index (id);

这样索引就重复了

冗余的索引:

index(name) ,index(name,age) 联合索引,那么 index(name) 就冗余了。

 

可以使用工具

pt-duplicate-key-checker –h=localhost 检查重复索引。

 

查找未被使用过的索引:

 

更新索引统计信息及减少索引碎片

analyze table table_name;




去泰国签证要几天办理泰国签证费用出发去泰国旅游泰国旅游报价到泰国旅游团购从化流溪河梅花什么时候开?2015年广州从化流溪河梅花几时最好看? 从化流溪河梅花好看吗?2015年广州从化流溪河梅花怎么样? 广州哪里看梅花?2015年广州从化流溪河梅花开了吗? 从化梅花开了吗?2015广东从化梅花几时开放? 海口荷塘印象休闲农庄地址?荷塘印象休闲农庄自驾游路线? 宜兴最西北的古老小镇 看看旧时的活水码头 全球首个巧克力茶壶:可泡出巧克力味茶水 乘机乘客须注意“航班取消”等短信诈骗手段 马拉湾好玩吗?郑州马拉湾怎么样? 黄河谷马拉湾在哪里?郑州马拉湾在什么地方? 郑州马拉湾水上乐园地址?郑州水上乐园在哪里? 郑州马拉湾在哪里?河南郑州马拉湾地址? “最能卖萌”的野生北极熊宝宝 会站立懂作揖 梅溪牌坊门票是通票吗?珠海梅溪牌坊一票到底吗? 中秋夜广州最佳赏月时刻:23时58分 梅溪牌坊介绍?珠海梅溪牌坊门票包含哪些景点? SL05A1-D1YWA Datasheet SL05A1-D1YWA Datasheet SL07A1-1GWA Datasheet SL07A1-1GWA Datasheet SL10A1-E1EWA Datasheet SL10A1-E1EWA Datasheet 长隆欢乐世界门票多少钱 长隆欢乐世界门票多少钱 长隆欢乐世界门票多少钱 武汉归元寺门票 武汉归元寺门票 武汉归元寺门票 巴马瑶族自治县 巴马瑶族自治县 巴马瑶族自治县