摘要:优化的一般步骤通过了解各种的执行频率定位执行效率低的语句通过分析效率低的通过分析通过分析优化器如何选择执行计划确定问题,采取措施优化索引优化措施中使用索引的典型场景匹配全值,条件所有列都在索引中而且是等值匹配匹配值的范围查找,字段必须在索引
优化sql的一般步骤
通过show status了解各种sql的执行频率
定位执行效率低的sql语句
通过explain分析效率低的sql
通过show profile分析sql
通过trace分析优化器如何选择执行计划
确定问题,采取措施优化
索引优化措施
mysql中使用索引的典型场景
匹配全值,条件所有列都在索引中而且是等值匹配
匹配值的范围查找,字段必须在索引中
匹配最左前缀,复合索引只会根据最左列进行查找
仅仅对索引进行查询,即查询的所有字段都在索引上
匹配列前缀,比如like "ABC%",如果是like "%aaa"就不可以
如果列名是索引,使用column is null会使用索引
存在索引但不会使用索引的典型场景
以%开头的like查询不能使用b树索引
数据类型出现隐式转换不能使用索引
复合索引,查询条件不符合最左列原则
用or分割的条件,如果前面的条件有索引,而后面的条件没有索引
查看索引使用的情况
show status like "Handler_read%";
如果Handler_read_rnd_next的值比较高,说明索引不正确或者查询没有使用到索引
简单实用的优化方法定期检查表和分析表
分析表语法:
analyze table 表名;
检查表语法:
check table 表名;
定期优化表
对于字节大小不固定的字段,数据更新和删除会造成磁盘空间不释放,这时候就行优化表,可以整理磁盘碎片,提高性能
语法如下:
optimize table user(表名);
如果文章对你有帮助,请去我的博客留个言吧! 我的博客
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/17531.html
阅读 1339·2019-08-30 15:55
阅读 1639·2019-08-26 10:21
阅读 3435·2019-08-23 18:28
阅读 3373·2019-08-23 15:38
阅读 740·2019-08-23 15:24
阅读 2133·2019-08-23 13:59
阅读 771·2019-08-23 11:31
阅读 2867·2019-08-23 10:53