慢SQL怎么优化

网友投稿 360 2023-11-29

慢SQL怎么优化

本篇内容介绍了“慢SQL怎么优化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

慢SQL怎么优化

慢SQL诊断

系统层面:检查系统服务器运行情况,磁盘 I/O 等;

数据库层面:

对于MySQL来说,通过慢日志定位慢SQL;

对于慢SQL,查看其执行计划,分析耗时的原因;

如果缺失索引,根据业务需求,创建合适的索引;如果由于SQL语句的写法有问题,需要根据业务逻辑优化语句的写法。

实用的SQL诊断工具:SQLTXPLAIN

是Oracle专家开发的,用于诊断SQL相关的问题的工具,简单易用却功能强大。

对于慢SQL诊断支持很多Optimzer问题:如执行计划异常、SQL慢、结果不正(Wrong Result)等。

慢SQL优化

由 SQL 编写导致的慢 SQL 的优化建议:

字段类型转换导致不用索引,如字符串类型的不用引号,数字类型的用引号等,这有可能会用不到索引导致全表扫描;

mysql 不支持函数转换,所以字段前面不能加函数,否则这将用不到索引;

不要在字段前面加减运算;

字符串比较长的可以考虑索引一部份减少索引文件大小,提高写入效率;

like % 在前面用不到索引;

根据联合索引的第二个及以后的字段单独查询用不到索引;

不要使用 select *;

排序请尽量使用升序 ;

or 的查询尽量用 union 代替 (Innodb);

复合索引高选择性的字段排在前面;

order by / group by 字段包括在索引当中减少排序,效率会更高。

删除表所有记录请用 truncate,不要用 delete

不让 mysql 干多余的事情,如:计算

在 Innodb上用 select count(*),因为 Innodb 会存储统计信息;

慎用 Oder by rand()。

开源 SQL 优化平台

对于 SQL 语句的优化,现在有一些开源的SQL优化平台,这些融入了大量DBA工程师的经验,我们可以借助这些平台对 SQL 进行优化。

1. SOAR

是一款 SQL 智能优化与改写工具,由小米运维 DBA 团队出品,SOAR  主要由语法解析器、集成环境、优化建议、重写逻辑、工具集五大模块组成,相比业内其他优秀产品有自己的优势,不仅能帮助你 rewrite  SQL并且能给出一些优化的建议。

2. SQLAdvisor

是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL的原生态词法解析,结合分析SQL中的其中条件,聚合条件,多表加入关系给出索引优化建议。

“慢SQL怎么优化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Percona Toolkit怎么安装使用
下一篇:怎么实现redis缓存
相关文章

 发表评论

暂时没有评论,来抢沙发吧~