索引优化策略
2018-06-17 23:03:20来源:未知 阅读 ()
在表上创建索引后,如何使用到这些索引需要注意的问题。
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;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:mysql 远程访问权限
下一篇:MySQL优化聊两句
- SQL如何查询语句优化 2020-02-26
- MySQL性能优化的20条经验 2019-09-23
- PHP高并发优化处理——redis层面详细步骤 2019-09-17
- 项目上线后,谈一下感触比较深的一点:查询优化 2019-09-08
- 性能优化:Mysql分表与分库使用场景以及设计方式 2019-08-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash