2011-12-23 65 views
1

我做一個很簡單的從表中選擇喜歡選擇查詢鎖InnoDB表

SELECT column FROM table WHERE id=5; 

ID是一個主鍵,所有的表都使用的是InnoDB。

當我能夠在phpMyAdmin分析和運行此查詢我看到這一點:

Status       Time 
starting       0.000025 
checking query cache for query 0.000034 
checking permissions    0.000004 
Opening tables     0.000022 
System lock      0.000004 
Table lock      0.000022 
init        0.000016 
optimizing      0.000008 
statistics      0.000030 
preparing      0.000022 
executing      0.000003 
Sending data      0.000009 
end        0.000002 
query end      0.000003 
freeing items     0.000061 
storing result in query cache 0.000005 
logging slow query    0.000002 
cleaning up      0.000002 

我運行相同的查詢第二次,我得到這個,因爲查詢緩存:

Status       Time 
starting       0.000022 
checking query cache for query 0.000005 
checking privileges on cached 0.000003 
checking permissions    0.000020 
sending cached result to clien 0.000055 
logging slow query    0.000002 
cleaning up      0.000002 

爲什麼是這樣一個簡單的選擇查詢鎖定表?

+0

你確定它是?我不是專家,但是這條線可能意味着「檢查沒有表鎖定」。通常,afaik,InnoDB從不應用全表鎖,除非明確要求。 – 2011-12-23 16:23:06

+0

是的,也許你是對的,我沒有找到一個地方,它描述了所有這些線的意思。 – 2011-12-23 16:27:46

回答