查询时间是否包含mysql中的锁定时间?

时间:2013-09-25 17:47:26

标签: mysql optimization

如果我在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?

1 个答案:

答案 0 :(得分:1)

你的第一个猜测是正确的;查询的执行时间是0.000246。

Lock_time表示查询花了多长时间等待获取锁,锁是否只是在行上(对于使用InnoDB存储引擎的表)或整个表(MyISAM存储引擎)。

要减少Lock_time,您可以考虑将表的存储引擎更改为InnoDB,它支持在UPDATEINSERT和其他修改的语句中锁定各行数据库的内容。 MyISAM锁定整个表以进行此类操作。