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
爲什麼是這樣一個簡單的選擇查詢鎖定表?
你確定它是?我不是專家,但是這條線可能意味着「檢查沒有表鎖定」。通常,afaik,InnoDB從不應用全表鎖,除非明確要求。 – 2011-12-23 16:23:06
是的,也許你是對的,我沒有找到一個地方,它描述了所有這些線的意思。 – 2011-12-23 16:27:46