MySQL MyISAM插入性能在Mac OS X上很慢

问题描述:

我在我的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语句。

解决我的问题是在配置的/etc/my.cnf

sync_binlog=1 

我不知道如何到达那里,但服用它或将它设置sync_binlog = 0肯定有所帮助。

听起来像表锁。你检查了吗?

+0

好吧,我试图在开始插入之前写入表锁,但这并没有什么区别 – Jamgold 2010-08-19 22:31:26

这显然在每一行上都做了一些坏事,并且速度几乎可以肯定与磁盘相关(这可以解释为什么老奔腾没有任何改进)。使用这个MySQL支持论坛可能会更好。直觉 - 你最好将数据文件放到更传统的Unix文件系统上。

+0

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