1

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

4

1 回答 1

1

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

Lock_time表示查询等待获取锁所花费的时间,锁是仅在行上(对于使用 InnoDB 存储引擎的表)还是在整个表上(MyISAM 存储引擎)。

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

于 2013-09-25T18:15:47.153 回答