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

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

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

我们希望针对大型 Magento 数据库优化 my.cnf。该服务器有 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

答案1

由于您使用的是 MySQL 5.0.95,我强烈建议您不仅删除 skip-innodb,而且还要升级到 MySQL 5.5。为什么???

InnoDB 已得到增强,可以利用多个 CPU 和超线程。但有一个问题:您必须正确配置 my.cnf 才能执行此操作。我这样说是因为,在某些情况下,MySQL 5.0 OUT-OF-THE-BOX 的运行速度比 MySQL 5.5 OUT-OF-THE-BOX 更快。

我之前曾在 DBA StackExchange 上写过关于此问题的帖子:

答案2

MySQL 使用该标志集工作的事实表明您的表都是 MyISAM。因此,我认为删除该标志本身不会产生任何影响。真正会产生影响的是删除它,然后将您的表转换为 InnoDB。这是您正在考虑做的吗?

如果你使用的是 MySQL 5.5,我强烈建议你这样做,并且只使用 InnoDB。MySQL 团队的一名成员进行的基准测试显示InnoDB 的速度比 MyISAM 快得多,跨多个处理器的可扩展性也更强. 人们普遍认为 MyISAM 比 InnoDB 更快,但是看来这种看法是错误的。

但是,我不知道这在 5.0 上是否正确。我猜想在 5.0 和 5.5 之间进行了大量调整。尽管如此,我还是建议尽可能切换到 InnoDB,因为它具有更好的数据完整性保证。事实上,我有点惊讶 - 并且有点怀疑 - 您的安装似乎还没有使用它。

相关内容