myisam 真的快嗎 ?

似乎大家對 myisam 的初步認識就是很快 , 不支援 Transaction , 適合當小型快速的資料儲存 , 但我看很多論壇(包括我公司) , 一旦會員很多的時候 , 不管用多好的硬體 ,  總是會常常有 Slow Query 出現 , 而且若網站的連接數量越多越容易出現 , 可是 CPU LOADING 用的卻不高

但可能自己把 Slow Query 拿來再執行的時候會覺得很快啊 .... 怎會這樣 ><

這應該要歸罪於 myisam 做任何的資料異動總是會 Table Lock , 因此常常在 phpmyadmin 中看看狀態 , 會發現很多 Table Lock Wait ...

是的 , 該死的 Table Lock , 如果剛好有某一條連線所做的 INSERT/ UPDATE / DELETE 動作耗時 1 秒(也許等硬碟) , 那麼可能所有需要讀取該 Table 的人都要等 1 秒完才能讀取該 Table

既然如此 , InnoDB 理論上在較多人連線時後運行的穩定度會比較好 , 不知道我的推論是否正確

還記得以前我在互動王設計股票看盤的時候 , 每秒一直讀資料進來並且塞資料 , 而且 Client 端是一直連線在接收資料 , 是都沒發現甚麼 Table Lock Wait 的問題 , 當時我就是用 InnoDB , 也許真的 InnoDB 屬於 ROW Lock 層級真的比較適合大型網站

但這些也只是推斷 , 下一版的改版網站 , 大概就可以證明這件事情了

 

3 則評論在 myisam 真的快嗎 ?.

發佈留言