【发布时间】:2015-07-18 21:17:13
【问题描述】:
我读到 InnoDB 应该比 MyISAM 更擅长写入 MySQL,但是,我正在尝试通过运行 3000 个 MySQL 查询(插入行,8 列 + id)......但结果没有结果如我所愿。
使用 InnoDB 的执行时间约为 5.3 秒,而使用 MyISAM 大约需要 2.2 秒。
我当前的mysql配置是:
innodb_io_capacity = 8000
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_log_buffer_size = 32M
innodb_log_file_size = 564M
innodb_buffer_pool_size = 6G
innodb_buffer_pool_instances = 6
innodb_thread_concurrency = 0
其他一切都是默认值。
我的服务器当前正在运行:Ubuntu 14.04 x64
拥有 12GB 内存
6芯
并且使用 SSD(服务提供商说它提供 10,000 IOPS)
如果我只使用 InnoDB,什么是 InnoDB 的最佳配置,而只使用 MyISAM 的最佳配置是什么(如果我在不使用的情况下禁用 InnoDB,由于某种原因会更快吗?它。)?
现在只是想用我的服务器来存储东西,并且需要写更多的数据,而不是阅读它......而后来,考虑阅读而不是写作。
不确定是否重要,但现在正在运行 nginx(服务器上没有 apache)、php 5.6 和 MySQL 5.6.19。
【问题讨论】:
-
这最好在 dba.stackexchange.com 上询问。使用 InnoDB,有事务的开销。这 3000 个单独的 INSERT 语句是组合在一起形成一个事务,还是那些单独的事务?
-
如果您的查询需要 2 秒才能执行,请归咎于查询而不是存储引擎。因此,配置问题无关紧要
-
@akuzminsky 我对查询没有问题,就像我说的,我只是在测试速度。代码+查询当时运行。目前只是试图获得可能的最佳配置
标签: php mysql configuration innodb myisam