第二十五节、为什么我只查一行的语句,也执行这么慢?

如果mysql数据库本身就有很大的压力,导致数据库服务器CPU占用率很高或ioutil(IO利用率)很高,这种情况下所有语句的执行都有可能变慢。

除了这种情况外还有一下情况及可能出现的原因:

1、查询长时间不返回:

mysql> select * from t where id=1;

一般这种情况的话,大概率是表t被锁住了,分析原因的时候,一般都是先执行show processlist命令,看看当前语句处于什么状态。然后再针对每种状态,分析他们产生的原因,如何复现,以及如何处理。

等MDL锁


第二十五节、为什么我只查一行的语句,也执行这么慢?_第1张图片

等flush锁


第二十五节、为什么我只查一行的语句,也执行这么慢?_第2张图片

等行锁


第二十五节、为什么我只查一行的语句,也执行这么慢?_第3张图片
第二十五节、为什么我只查一行的语句,也执行这么慢?_第4张图片
第二十五节、为什么我只查一行的语句,也执行这么慢?_第5张图片



第二类:查询慢


第二十五节、为什么我只查一行的语句,也执行这么慢?_第6张图片

你可能感兴趣的:(第二十五节、为什么我只查一行的语句,也执行这么慢?)