mysql my.cnf показывает InnoDB как отключенный "skip-innodb". Должен ли я включить его для больших БД Magento?

Файл MySQL my.cnf на нашем сервере CentOS показывает skip-innodb как настоящее.

Мы стремимся оптимизировать my.cnf для большой базы данных Magento. Сервер имеет 12 ГБ памяти и 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

2 ответа

Решение

Поскольку у вас MySQL 5.0.95, я настоятельно рекомендую вам не только удалить skip-innodb, но и обновить до MySQL 5.5. Зачем???

InnoDB был улучшен, чтобы использовать преимущества нескольких процессоров и гиперпоточности. Есть одна загвоздка: вы должны правильно настроить my.cnf, чтобы сделать это. Я говорю это потому, что в некоторых случаях MySQL 5.0 OUT-THE-BOX работает быстрее, чем MySQL 5.5 OUT-OF-BOX.

Ранее я писал об этом в DBA StackExchange:

Тот факт, что MySQL работает с этим набором флагов, предполагает, что все ваши таблицы - это MyISAM. Поэтому я не думаю, что удаление флага будет иметь какое-либо значение само по себе. Что могло бы изменить ситуацию, так это удалить его, а затем преобразовать таблицы в InnoDB. Это то, что ты собираешься делать?

Если бы вы использовали MySQL 5.5, я бы с уверенностью посоветовал вам сделать это и использовать исключительно InnoDB. Тест, проведенный парнем из команды MySQL, показывает, что InnoDB существенно быстрее и более масштабируем для нескольких процессоров, чем MyISAM. Существует распространенное мнение, что MyISAM быстрее, чем InnoDB, но кажется, что это неверное восприятие.

Тем не менее, я понятия не имею, правда ли это на 5.0. Я думаю, что было много настроек между 5.0 и 5.5. Тем не менее, я бы посоветовал перейти на InnoDB, если вы можете, просто потому, что он имеет лучшие гарантии целостности данных. На самом деле, я немного удивлен - и несколько подозрительно - что ваша установка, кажется, уже не использует его.

Другие вопросы по тегам