【问题标题】:MySQL MyISAM INSERT performance slow on Mac OS XMySQL MyISAM INSERT 在 Mac OS X 上的性能很慢
【发布时间】:2011-04-01 07:04:09
【问题描述】:

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

【问题讨论】:

    标签: mysql performance macos osx-snow-leopard


    【解决方案1】:

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

    【讨论】:

    • 好吧,我尝试在开始插入之前写锁表,但这并没有什么不同
    【解决方案2】:

    它显然在每一行都做了一些“坏”的事情 - 并且考虑到速度很慢,几乎可以肯定与磁盘相关(这可以解释旧 Pentium 缺乏任何改进)。在这个论坛上使用 mySQL 支持论坛可能会更好。直觉 - 将数据文件放在更经典的 Unix 文件系统上可能会更好。

    【讨论】:

    • 我同意经典的 Unix 文件系统。
    【解决方案3】:

    我的问题的解决方案是 /etc/my.cnf 中的配置

    sync_binlog=1
    

    我不知道它是如何到达那里的,但将它取出或设置它 sync_binlog=0 肯定有帮助。

    【讨论】:

      猜你喜欢
      • 2013-09-22
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      • 2012-04-05
      • 2010-10-24
      • 1970-01-01
      • 2013-04-17
      相关资源
      最近更新 更多