Вы должны преобразовать все данные в InnoDB, чтобы предотвратить проблемы с блокировкой таблицы. Однако вот о чем стоит подумать:
ПОЛНАЯ ТЕКСТОВАЯ индексация
В настоящее время только MyISAM поддерживает индексацию FULLTEXT. Индексирование FULLTEXT для InnoDB в настоящее время находится в разработке для MySQL 5.6, но не готово к работе . Если у вас есть какие-либо таблицы Drupal с индексами FULLTEXT, они не могут быть преобразованы в InnoDB в настоящее время.
ОБНОВЛЕНИЕ по индексации FULLTEXT
MySQL 5.6 теперь GA (для производственного использования). Пожалуйста, попробуйте индексирование FULLTEXT в InnoDB.
Чтобы найти те таблицы, которые имеют FULLTEXT
индекс, выполните этот запрос:
SELECT table_schema,table_name
FROM information_schema.statistics
WHERE index_type='FULLTEXT';
Если строки не возвращаются, преобразуйте все таблицы InnoDB в свое удовольствие. Ранее я писал о том, как преобразовать все таблицы MyISAM в InnoDB, используя только mysql .
MySQL Replication
Если у вас среда с интенсивным чтением, чтение может выполняться быстрее в MyISAM, если вы выполните следующие действия:
- Настройка Master / Slave Replication
- Создайте одного или нескольких Прочитанных Рабов под Мастером
- Добавьте
--skip-innodb
/etc/my.cnf на всех подчиненных устройствах (преобразует таблицы в MyISAM при загрузке данных в подчиненное устройство).
- Измените формат строки всех таблиц MyISAM на каждом подчиненном устройстве на ИСПРАВЛЕНО этой командой:
ALTER TABLE tblname ROW_FORMAT=FIXED;
- Я разместил что-то об этом в DBA StackExchange
- Книга MySQL Database Design and Tuning рекомендует использовать
ROW_FORMAT=FIXED
на страницах 72,73. Это внутренне преобразует все поля VARCHAR в CHAR. Это увеличит размер таблицы MyISAM, но выполнение SELECT для нее будет намного быстрее. Я могу лично засвидетельствовать это. Однажды у меня был стол, который был 1,9 ГБ. Я изменил формат с ALTER TABLE tblname ROW_FORMAT=FIXED
. Таблица закончилась 3,7 ГБ. Скорость SELECTs против него была на 20-25% быстрее без улучшения или изменения чего-либо еще.
Единственная головная боль, возникающая при этом, заключается в том, что ваше приложение осознает наличие отдельных ведомых устройств чтения.
Эпилог
Если вы смотрите на другие преимущества каждого механизма хранения, проверьте DBA StackExchange: