如果我在mysql_slow.log文件中看到此信息:
Query_time: 31.112148 Lock_time: 31.111902
Rows_sent: 0 Rows_examined: 1 SET timestamp=1380118248;
这是否意味着该特定查询的总时间浪费为Query_time - Lock_time = 0.000246?
或者特定查询是否浪费了Query_time并浪费了整个过程Query_time + Lock_time = 62.22405?
答案 0 :(得分:1)
你的第一个猜测是正确的;查询的执行时间是0.000246。
Lock_time
表示查询花了多长时间等待获取锁,锁是否只是在行上(对于使用InnoDB存储引擎的表)或整个表(MyISAM存储引擎)。
要减少Lock_time
,您可以考虑将表的存储引擎更改为InnoDB,它支持在UPDATE
,INSERT
和其他修改的语句中锁定各行数据库的内容。 MyISAM锁定整个表以进行此类操作。