代码之家  ›  专栏  ›  技术社区  ›  dd.

与其他环境相比,Mysql在我的MacBook上运行速度要慢得多

  •  4
  • dd.  · 技术社区  · 16 年前

    我想在我的MacBook上加速我的MySQL。它比在我们的服务器或其他笔记本电脑的虚拟机上运行的MySQL慢得多。

    我处理的所有表格都是InnoDB。我运行了很多django单元测试,所以有很多create table命令可以运行。

    更新:

    我应该注意到,我真的把它和另一台运行Fedora虚拟机的笔记本电脑进行了比较,我的电脑没有任何改动。cnf和不是特别快的硬盘。我也知道我们的服务器运行速度相当快,但我可以接受这一点。

    我猜这仍然可能是硬盘问题。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Seth    16 年前

    要记住一件事:你的MacBook有一个笔记本电脑硬盘。即使是7200 RPM,你也应该期待它会更慢,甚至比普通的服务器硬盘都慢。

    即使在超高速机器上,django的测试套件也会破坏所有的数据库缓存,因为它会在每次运行时重建数据库。

    不过,您可以在内存中运行单元测试,这要快几个数量级:

    创建一个新的 testsettings.py 应用程序旁边的文件 settings.py 包含:

    from projectname.settings import *
    DATABASE_ENGINE = 'sqlite3'
    

    然后当你想快速运行测试,而不是 manage.py test 你跑

    manage.py test --settings=testsettings
    

    阅读更多 here .

    我还尝试将MySQL数据库完全定位在RAM磁盘上。不幸的是,我还没有在Mac OS X上解决这个问题。

    (所有这些都假设您的mysql配置没有严重问题:)

        2
  •  0
  •   zznate    16 年前

    您是否调整了Macbook上默认的MySQL配置,使其更接近其他环境中的情况?MySQL的默认设置非常小。

    我不熟悉MySQL在OSX上的安装位置,但您应该有以下几个不同环境的配置文件示例: [mysql home]/支持文件/

    通过将它们复制到/etc/my来进行实验。cnf和重新启动MySQL。这些示例文件都有很好的注释,所以这是学习一些基本MySQL tunning的一个很好的实践方法。如果你确实只是在运行InnoDB,你可以在每次尝试节省资源时注释掉或删除MyISAM设置。

        3
  •  0
  •   Evert    16 年前

    硬盘是一个因素,但也要确保检查:

    innodb_buffer_pool_size
    

    如果您使用innodb,您可能希望将其更改为更高的版本(内存的50%,或数据库的大小)。但是记住,这个数量 将 实际上是MySQL使用的,所以如果你还想把你的RAM用于其他目的。。您最好接受这样一个事实:您的开发工作站的速度不如为MySQL数据库而优化的服务器。

        4
  •  0
  •   ggiroux    16 年前

    您没有告诉我们工作负载是什么,是读取还是更新,或者两者都是,但是如果是写密集型的,您可以尝试将innodb_flush_log_at_trx_commit设置为0,让innodb放松对*sync()调用的处理——可能与apple OS上的内核/磁盘子系统的交互不好。

    你也可以发布我的。你用的是cnf。如果连接到db时出现延迟,也可能是dns查找问题。要排除dns问题,请在my中设置跳过名称解析。cnf。