我读到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。
答案 0 :(得分:0)
MyISAM不是崩溃安全的,也不是事务性的。在完成语句(或COMMIT)之前,InnoDB确保数据同步到磁盘(MyISAM没有)。
尝试将您的写入一起扩展到单个事务(BEGIN; INSERT,INSERT; COMMIT),或者并行运行多个插入而不是顺序运行(或同时运行两个)。这些事情将显着提高性能。
我还会阅读Stuart Wagner建议的链接。