2009-10-29 45 views
0

我已經使用ARCHFLAGS =「 - arch x86_64」在這些instructions by Hivelogic和mysql(2.8.1)gem之後安裝了MySQL 5.1.40源代碼分發(64位可執行x86_64)。在Snow Leopard下MySQL非常慢

我正在使用它進行Ruby on Rails開發,而我的問題是,即使MySQL以各種方式工作,它都非常緩慢。
執行標準rake數據庫時使用sqlite3進行比較:遷移創建約15個表。

的MySQL:

時間耙分貝:遷移
真正0m4.882s
用戶0m1.426s
SYS 0m0.235s

的sqlite3:

時間rake db:migrate
個真實0m2.282s
用戶0m1.501s
SYS 0m0.255s

我們還必須考慮到對每個測試的執行時間1.5s左右是軌道框架這意味着sqlite3的執行的加載SQL任務大約需要0.5-1s,而MySQL需要超過3s才能完成同一組任務。

這不就是錯的嗎?這可能是什麼原因?任何遇到同樣問題的人?

我已經安裝和重新安裝了MySQL和MySQL的/紅寶石寶石几次,但總是以同樣的結局... :(

我的雪豹是升級安裝,而不是一個全新安裝。也許這是這個問題的原因是什麼?一些過時的庫?

謝謝!

回答

0

在你的問題中的數據,這聽起來像你是比較香蕉和橘子。

具體來說,你有什麼證據證明水庫ults甚至不符合要求?與運行相同測試的其他平臺進行比較?

這甚至是一個與你最終想做的事情相關的測試嗎?即你是否正在測試與通常要做的一組典型任務相關的事情,或者試圖對安裝期間發生的一次性任務進行優化?

還要注意,SQLite和MySQL具有截然不同的性能配置文件。 SQLite是一個單用戶,非客戶端/服務器數據庫,而MySQL通常配置爲以客戶/服務器角色工作。除了完全不同的性能配置文件之外,這也會導致完全不同的可擴展性特徵。

+0

感謝您的回覆! 我與另一個平臺的唯一比較是,我在Leopard下運行了相同的測試套裝(使用上面的db:migrate),現在它在Snow Leopard下顯着更慢,執行時間在Leopard中大約需要1分鐘,在雪豹4分鐘。 我也注意到,mysql似乎「嗆」了Leopard下沒有發生的事情。如果我嘗試插入200條記錄 - 第一個30-40的閃電速度很快(〜0.8ms),但是儘管第一個插入和最後一個插入之間的複雜性相同,但它會大幅減速至每插入200ms。 – mrD 2009-10-30 09:05:02

+0

好的 - 我建議在Leopard和Snow Leopard上都使用'sample'來獲得CPU週期正在進行的概覽。這也可能是由於兩個操作系統之間的磁盤同步更改所致。無論如何,通常需要將數據庫調優到特定的系統。 – bbum 2009-10-30 15:23:00