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肯定有所帮助。
听起来像表锁。你检查了吗?
这显然在每一行上都做了一些坏事,并且速度几乎可以肯定与磁盘相关(这可以解释为什么老奔腾没有任何改进)。使用这个MySQL支持论坛可能会更好。直觉 - 你最好将数据文件放到更传统的Unix文件系统上。
我同意经典的Unix文件系统。 – Jamgold 2010-08-20 14:36:20
好吧,我试图在开始插入之前写入表锁,但这并没有什么区别 – Jamgold 2010-08-19 22:31:26