簡體   English   中英

在Mac OS X上,MySQL MyISAM INSERT性能降低

[英]MySQL MyISAM INSERT performance slow on Mac OS X

我在MacPro(四核6G內存)上在雪豹10.6.4上運行mysql 5.1.49時遇到了糟糕的INSERT時間。 我試圖弄清楚問題出在哪里,最后得出結論,它必須與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語句。

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

顯然,每一行都在做“壞事”-鑒於幾乎可以肯定,與磁盤相關的速度很慢(這可以解釋舊Pentium缺乏任何改進)。 在這一方面的mySQL支持論壇上,您可能會更好。 沒錯-將數據文件放到更經典的Unix文件系統上可能會更好。

解決我的問題的方法是/etc/my.cnf中的配置

sync_binlog=1

我不知道它如何到達那里,但是將其取出或將其設置為sync_binlog = 0肯定會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM