当前位置:网站首页> MySQL优化教程之慢查询日志实践
MySQL优化教程之慢查询日志实践
2022-06-09 19:03:00 【1024问】
对于SQL和索引的优化问题,我们会使用explain去分析SQL语句。但是真正的企业级项目有成千上万条SQL,我们不可能从头开始一条一条explain去分析。我们从什么地方可以获取那些运行时间长,耗性能的SQL??
我们可以打开慢查询日志:
根据具体的业务和并发量来预估一个时间上限(20ms、100ms),设置好后开启业务,压测后打开慢查询日志,就会看到超过执行时间的SQL,然后使用explain分析这些耗时的SQL语句
步骤如下:
打开慢查询日志开关slow_query_log
设置合理的、业务可以接受的慢查询时间上限
压测执行各种业务
查看慢查询日志,找出所有执行耗时的SQL语句
用explain分析这些耗时的SQL语句,从而针对性优化
MySQL可以设置慢查询日志,当SQL执行的时间超过我们设定的时间,那么这些SQL就会被记录在慢查询日志当中,然后我们通过查看日志,用explain分析这些SQL的执行计划,来判定为什么效率低下,是没有使用到索引?还是索引本身创建的有问题?或者是索引使用到了,但是由于表的数据量太大,花费的时间就是很长,那么此时我们可以把表分成多个小表等。
慢查询日志相关的参数如下所示:
(MySQL定义的很多的全局的开关,都是在全局变量中存储,可以用show/set variables查看或者设置全局变量的值)

慢查询日志开关默认是关闭的
慢查询日志的路径:默认在/var/lib/mysql/下
慢查询日志记录了包含所有执行时间超过参数 long_query_time(单位:秒)所设置值的 SQL语句的日志,在MySQL上用命令可以查看,如下:

这个值是可以修改的:

1. 打开慢查询日志开关slow_query_log

在打开慢查询日志开关的时候,报错表示slow_query_log是一个global的变量(也有只影响当前session的变量,如:long_query_time 、profiling),修改后会影响所有的session,即影响所有正在访问当前MySQL server的客户端。
打开慢查询日志开关成功!
2. 设置合理的、业务可以接受的慢查询时间上限long_query_time

查看另一个session

发现还是默认的10s,故long_query_time只影响当前session
3. 压测执行各种业务

已经超过我们设置的long_query_time=0.1s
4. 查看慢查询日志
路径:/var/lib/mysql/

5. 用explain分析这些耗时的SQL语句,从而针对性优化

做了整表的搜索,把主键索引树整个扫了一遍。
我们应该给password添加索引,然后记得password是字符串格式,因为如果涉及类型转换是用不了索引的
三、show profiles查看sql具体的运行时间
MySQL一般只显示小数点后两位的时间
打开profiling开关,显示更详细的时间

没有报错,说明profiling变量只影响当前session

边栏推荐
- 三星彻底关闭LCD产线,300名员工转移至芯片封装部门
- Leetcode: Sword finger offer 56 - I. number of occurrences in the array [grouping XOR]
- 155_ Model_ Safety stock of power Bi & power pivot purchase, sales and inventory
- The problem of the longest valid bracket
- Why is cloud native data Lake worth paying attention to?
- How to reduce noise by measuring current probe
- 可视化展示炫酷3D图表
- Dl|part of cyclic neural network
- mtb12_PearsonR_correlAtion coefficient_heatmap_Distribution Bin_Clean Step类型转换慎_spatial dist_改变para值
- 第一次画板子小记
猜你喜欢

Pourquoi Google Search ne peut - il pas Pager indéfiniment?

Structure design of high pressure differential probe

How to measure differential signal with high voltage differential probe

Google搜索为什么不能无限分页?

DBeaver中如何调整SQL编辑器的字体大小

前美联储高级经济学家胡捷:从USDD升级看未来金融趋势

便利蜂存在违规收集个人信息行为遭通报,关联公司屡收罚单

押宝云原生,Ampere Computing打响服务器芯片变革关键一枪

快速求完全二叉树的节点个数

mtb12_PearsonR_correlAtion coefficient_heatmap_Distribution Bin_Clean Step类型转换慎_spatial dist_改变para值
随机推荐
美农生物上市在即:近三年经营较为稳健,预计超募约1亿元
第一次画板子小记
The company is suspected of violating the ban to provide technical support to Huawei Hisilicon. Xinsi technology said it was cooperating with the U.S. government in the investigation
Audio 3A processing practice makes your application more "pleasant"
Pcap file
CL210OpenStack操作的故障排除--诊断OpenStack问题
Left hand technology, right hand ecology! Can Intel win this "data" war?
How to adjust the font size of SQL editor in dbaver
联发科:市场需求不会消失,未来3年营收年复合增长率将超14%
How about JPMorgan futures? Is it safe to open futures accounts?
有源差分探头在USB2.0一致性分析测试的准备工作
如何用高压差分探头测量差分信号
同花顺股票开户怎么样?开户安全吗?
SQL exercise 4: string processing function
Samsung completely closed the LCD production line, and 300 employees were transferred to the chip packaging Department
220609-R
The problem of the longest valid bracket
US Secretary of Commerce: consider adding more Chinese enterprises to the "blacklist" and will not relax sanctions in the near future
Dl|part of cyclic neural network
国联期货开户安全吗?国联期货公司开户方法是什么?