2013-09-25 71 views
0

如果我在mysql_slow.log文件中看到這樣的信息:查詢時間是否包含MySQL中的鎖定時間?

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

你的第一個猜測是對的;查詢執行時間爲0.000246。

Lock_time代表多久查詢花費等待獲取鎖,鎖是否只是對行(使用InnoDB存儲引擎的表),或在整個表(MyISAM存儲引擎)。

要減少Lock_time,可以考慮將表的存儲引擎更改爲InnoDB,該引擎支持在UPDATEINSERT和其他修改數據庫內容的語句中鎖定單個行。 MyISAM會鎖定整個表以執行此類操作。