网站首页 > 知识剖析 正文
我们日常开发中常常会遇到数据库查询比较慢,大量的慢查询日志堆积使开发人员痛不欲生,上有DBA劈头盖脸的吐槽你SQL写的垃圾导致数据库负载居高不下,下有产品经理鄙视你代码垃圾系统响应太慢,只有你夹在中间欲哭无泪,而面试中也常常会问到你对于SQL性能优化的知识,下面我们就来说一下开发中必须要掌握的一些SQL优化技能。
如果你对数据库的数据库引擎、数据库索引原理不是很了解那你可以查看我之前的两篇文章:
首先把基础原理搞懂才能谈优化,而生产中我们怎么确定哪些是慢查询SQL的呢?那就要用到我们的慢查询日志了,配置方法如下:
修改配置文件my.cnf,在[mysqld]下的下方加入
[mysqld]
slow_query_log = ON
log_queries_not_using_indexes = ON;
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1 #时间自己根据业务情况定义
这样我们就能获取到我们系统中的慢查询SQL了,获取到这些慢查询SQL之后呢,我们可以使用Explain 这个命令对我们的语句进行分析,如果不懂这个命令的使用,可以查看我的另一篇文章:MySQL——SQL性能分析优化利器之Explain