2009-01-12 105 views
0

我有一個相當簡單的查詢大約每秒300K +條目,這聽起來合理,但其它方法保存的數據的質量的解碼(例如,陣列的反序列化)MySQL的性能瓶頸

SELECT col1 FROM table1 

該命令輸出在極限工作硬盤驅動器的功能,例如40-50 MB/s,而MySQL則爲2-3 MB/s。

我看到我的MySQL機器是CPU綁定的,我認爲必須有一個更簡單的解決方案來繼續使用MySQL並享受雙倍數字速度吞吐量(當然,查詢複雜度相同)在硬件上花費一筆錢

任何想法如何擺脫服務器,使這種情況發生?


編輯:我用的是MyISAM引擎


編輯:服務器已經是一個不錯的機器,所以我並不想在這裏掐我的便士...

+0

爲什麼要將序列化數據放入數據庫?它看起來像你沒有過濾,搜索,排序,加入或做任何其他使用數據庫的東西。除非您遺漏了一些細節,否則最好的解決方案可能是堅持使用平面文件導入。 – 2009-01-12 17:51:05

回答

3

商店內存中的數據庫。使它真的很快!

4

您是否正在爲您的問題使用正確的工具? MySQL是一個關係數據庫。它擅長涉及列之間關係的查詢。您所描述的查詢類型沒有利用數據庫的優點,但仍支付其開銷。 MySQL不保證速度 - 它以合理的速度啓用持久存儲和複雜的查詢功能。也許你需要一個不同的數據架構。或者,如果您描述的查詢不具有代表性,則此處爲a book about mysql performancethe respective blog

1

數據庫更經常地使機器I/O綁定。

如果你的機器是CPU綁定的,那麼我認爲數據庫不是你的瓶頸。