MySQL调优学习笔记(五、高性能索引)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL调优学习笔记(五、高性能索引),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2797字,纯文字阅读大概需要4分钟。
内容图文
![MySQL调优学习笔记(五、高性能索引)](/upload/InfoBanner/zyjiaocheng/877/a828ed78e93849abbb6a530e8f38acc8.jpg)
目录:
- 高效索引策略
- 维护索引和表
- 索引创建的选择
高效索引策略
1、组合索引:多条件查询时使用组合索引,多每个查询的列增加独立的索引并不能提高查询效率。———————————————————————————————————————————————————————
2、独立的列:查询的列不是独立的,mysql不会使用索引,也就是数据列使用了mysql提供的函数(因为mysql不知道你要对列做什么处理,所以mysql认为使用索引可能会降低效率),当然查询的数据值是可以使用函数的。
如:id varchar;to_number(id)=1,不使用索引;id=to_number('1'),使用索引,但这种情况to_number可以写成id=1,mysql会做转换。———————————————————————————————————————————————————————
3、前缀索引和索引选择性:有时候需要检索很长的字符,这样会让索引变得大且慢。此时我们可以检索开始的部分字符,从而可以提高索引效率、节省索引空间、降低索引的选择性(不重复的索引值与数据表的记录总数的比值)。但MySQL无法使用前缀索引做ORDER BY和GROUP BY,也无法使用前缀索引做覆盖扫描。
不重复的索引值与数据表的记录总数的比值:SELECT COUNT(DISTINCT LEFT(address, 3)) / COUNT(*) FROM address;
比值越接近1,使用前缀索引的效率越好;我们可以这样计算来优化索引。
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、覆盖索引:一个索引包含所有需要查询的列,我们将这样的所有称为覆盖索引。
如InnoDB二级索引存储了主键和索引列,我们使用Select id,name from tablename where name=’Rose’;时,那这个索引就是覆盖索引。
———————————————————————————————————————————————————————
5、索引排序:mysql可以使用一个索引既满足排序,又可用于查找。
———————————————————————————————————————————————————————
6、压缩索引:Myisam索引使用前缀压缩来减少索引的大小,从而可以让更多的索引放入内存中,某些情况下可以提高性能。
———————————————————————————————————————————————————————
7、排除冗余和重复索引:MySQL允许在相同列上创建多个索引,无论是有意还是无意的。MySQL需要单独维护重复的索引,并且优化器在优化查询的时候也需要逐个进行考虑,这会影响性能。
维护索引和表
检查/修复损坏的表(CHECK TABLE / REPAIR TABLE)
索引创建的选择
- 频繁更新的字段不适合建立索引。
- 参与列计算的列不适合建索引。
- 数据重复且唯一性太差的字段不适合建立索引,例如:性别,真假值。
- 表数据可以确定比较少的不需要建索引。
- where条件中用不到的字段不适合建立索引。
内容总结
以上是互联网集市为您收集整理的MySQL调优学习笔记(五、高性能索引)全部内容,希望文章能够帮你解决MySQL调优学习笔记(五、高性能索引)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。