如果我在 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.000246。
Lock_time
表示查询花费了多长时间等待获取锁,锁是仅在行上(对于使用 InnoDB 存储引擎的表)还是在整个表(MyISAM 存储引擎)。
要减少Lock_time
,您可以考虑将表的存储引擎更改为InnoDB,它支持在UPDATE
、INSERT
,以及其他修改数据库内容的语句。 MyISAM 为此类操作锁定整个表。
关于mysql - mysql中Query时间是否包括Lock时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19011789/