mysql my.cnf将InnoDB显示为禁用“skip-innodb”。 我应该为大型Magento DB启用它吗?

我们的centOS服务器上的MySQL my.cnf文件显示了skip-innodb

我们正在寻找优化my.cnf的大型Magento数据库。 该服务器有12GB的内存和5个Xeon处理器。

最好是评论/删除skip-innodb行吗? 如果还有什么需要修改的文件?

目前my.cnf文件:

 [mysqld] skip-innodb ft_min_word_len=3 query_cache_limit = 4M query_cache_size = 16M ## 32MB for every 1GB of RAM query_cache_type = 1 max_user_connections = 50 max_connections = 50 interactive_timeout = 300 wait_timeout = 200 connect_timeout = 200 thread_cache_size = 32 key_buffer_size = 64M ## 128MB for every 1GB of RAM join_buffer_size = 1M max_connect_errors = 20 max_allowed_packet = 12M table_cache = 1024 record_buffer = 1M sort_buffer_size = 1M ## 1MB for every 1GB of RAM read_buffer_size = 1M ## 1MB for every 1GB of RAM read_rnd_buffer_size = 1M ## 1MB for every 1GB of RAM thread_concurrency = 4 ## Number of CPUs x 2 myisam_sort_buffer_size = 32M tmp_table_size = 16M max_heap_table_size = 12M [safe_mysqld] open_files_limit = 2048 [mysqldump] quick max_allowed_packet = 12M 

既然你有MySQL 5.0.95,我强烈build议你不仅删除skip-innodb,而且还升级到MySQL 5.5。 为什么?

InnoDB得到了增强,可以利用多个CPU和超线程技术。 有一个问题: 你必须正确configurationmy.cnf才能这样做 。 我这样说是因为,在某些情况下,MySQL 5.0的“开箱即用”运行速度比MySQL 5.5的“开箱即用”还要快。

我已经在DBA StackExchange中写过关于这个的更早的post:

  • Nov 24, 2011为什么mysql 5.5比5.1慢(linux,使用mysqlslap)
  • Oct 05, 2011查询在一些较新的MySQL版本中运行很长时间
  • Sep 20, 2011多核心和MySQL性能
  • Jun 19, 2011我如何正确执行MySQL的烘烤?
  • May 26, 2011关于单线程与multithreading数据库的性能

MySQL使用该标志集的事实表明你的表都是MyISAM。 因此,我不认为去掉这个国旗会有什么不同。 什么会有所作为会将其删除,然后将您的表转换为InnoDB。 那是你正在考虑的事情吗?

如果您使用MySQL 5.5,我会自信地build议您这样做,并独家使用InnoDB。 MySQL团队中的一个人所做的基准testing表明, 与MyISAM相比 , InnoDB在多处理器上速度更快,可扩展性更强 。 有一种stream行的看法,认为MyISAM比InnoDB更快,但看起来这种看法是错误的。

不过,我不知道5.0版本是否属实。 我想在5.0和5.5之间有很多调整。 尽pipe如此,如果可以的话,我build议切换到InnoDB,只是因为它具有更好的数据完整性保证。 事实上,我有点惊讶 – 有些可疑 – 你的安装似乎没有使用它。