我们的 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 上写过关于此问题的帖子:
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
:关于单线程与多线程数据库性能
答案2
MySQL 使用该标志集工作的事实表明您的表都是 MyISAM。因此,我认为删除该标志本身不会产生任何影响。真正会产生影响的是删除它,然后将您的表转换为 InnoDB。这是您正在考虑做的吗?
如果你使用的是 MySQL 5.5,我强烈建议你这样做,并且只使用 InnoDB。MySQL 团队的一名成员进行的基准测试显示InnoDB 的速度比 MyISAM 快得多,跨多个处理器的可扩展性也更强. 人们普遍认为 MyISAM 比 InnoDB 更快,但是看来这种看法是错误的。
但是,我不知道这在 5.0 上是否正确。我猜想在 5.0 和 5.5 之间进行了大量调整。尽管如此,我还是建议尽可能切换到 InnoDB,因为它具有更好的数据完整性保证。事实上,我有点惊讶 - 并且有点怀疑 - 您的安装似乎还没有使用它。