2010-08-19 45 views
0

我在我的MacPro(四核6G內存)上運行MySQL 5.1.49在雪豹10.6.4上遭受了嚴重的INSERT時間。我試圖找出問題出在哪裏,最後得出結論,它必須與Mac OS X有關。MySQL MyISAM插入性能在Mac OS X上很慢

這是我跑的測試。我有一個老戴爾單一的奔騰CPU和256M內存和MySQL 5.1.44。該ip2nation.sql文件包含不同的插入線這樣

INSERT INTO ip2nation (ip, country) VALUES(0, 'us'); 
INSERT INTO ip2nation (ip, country) VALUES(687865856, 'za') 
... 

插入那些在網絡上工作得很好

time mysql -h dell test < ip2nation.sql 

real 0m22.352s 
user 0m0.587s 
sys  0m1.556s 

我的Mac上運行鍼對我的MySQL數據庫相同的測試,結果是超乎想象

time mysql test < ip2nation.sql 

real 23m46.254s 
user 0m1.199s 
sys  0m1.808s 

這兩個命令都從OSX運行。當我更改SQL INSERT語句來

INSERT INTO ip2nation (ip, country) VALUES 
(0, 'us') 
,(687865856, 'za') 
... 

倍格式上OSX是好了很多

time mysql test < ip2nation.sql 

real 0m1.183s 
user 0m0.021s 
sys  0m0.009s 

任何人可以解釋這樣對我?我不能重寫所有我的應用程序來使用這種形式的INSERT語句。

回答

0

解決我的問題是在配置的/etc/my.cnf

sync_binlog=1 

我不知道如何到達那裏,但服用它或將它設置sync_binlog = 0肯定有所幫助。

0

聽起來像表鎖。你檢查了嗎?

+0

好吧,我試圖在開始插入之前寫入表鎖,但這並沒有什麼區別 – Jamgold 2010-08-19 22:31:26

0

這顯然在每一行上都做了一些壞事,並且速度幾乎可以肯定與磁盤相關(這可以解釋爲什麼老奔騰沒有任何改進)。使用這個MySQL支持論壇可能會更好。直覺 - 你最好將數據文件放到更傳統的Unix文件系統上。

+0

我同意經典的Unix文件系統。 – Jamgold 2010-08-20 14:36:20