Ответ заключается в том, что вы всегда должны измерять, желательно вашими данными и рабочей нагрузкой, если это вообще возможно.
Поскольку шаблоны доступа к данным могут сильно различаться в зависимости от приложения, трудно сказать и, по всей вероятности, невозможно определить «лучший» механизм хранения для всех рабочих нагрузок.
Тем не менее, в MySQL есть очень обнадеживающие события, которые посетили на прошлой неделе MySQLConf / Percona Performance Conf.
Некоторые из альтернативных механизмов хранения:
- XtraDB (форк InnoDB)
- Плагин InnoDB
- PBXT
- TokuDB
Кроме того, Percona, Google и т. Д. Предоставили исправления, которые очень помогают в производительности InnoDB. Лично я запускаю сборку OurDelta. Это хорошо работает для меня, и я рекомендую проверить сборки OurDelta и Percona.
Если это простая система хранения / отчетности, я использую MyISAM для ее сырой производительности.
Я бы использовал InnoDB, если бы меня беспокоило множественное одновременное обращение с большим количеством записей, чтобы воспользоваться преимуществами блокировки на уровне строк.
источник
Существует множество тестов для различных баз данных MySQL. Есть достойный пример сравнения MyISAM, InnoDB и Falcon в блоге Percona MySQL Performance , смотрите здесь .
Между двумя вышеупомянутыми движками (MyISAM и InnoDB) следует учитывать еще одну проблему - подходы к блокировке. MyISAM выполняет блокировку таблиц, в то время как InnoDB выполняет блокировку строк. Есть множество вещей, которые нужно учитывать, а не только прямые показатели производительности.
источник
Существуют функции, которые вы найдете очень полезными по эксплуатационным причинам, даже если ваше приложение не требует их абсолютно:
Таким образом, несмотря на ограничения внешнего ключа, вы, вероятно, все равно захотите использовать InnoDB.
Конечно, это ServerFault, а не переполнение стека, поэтому правильный ответ:
источник
Мой хостинг-провайдер посоветовал нам полностью избавиться от MyISAM и перейти на InnoDB, если это невозможно.
В нашем случае у нас было серьезное повреждение данных, которое начинало отображаться от нескольких раз до нескольких раз в день, всегда требуя REPAIR TABLE и связанных команд, которые занимали много времени на больших таблицах.
Как только мы преобразовали (или: были преобразованы) в InnoDB, проблемы немедленно исчезли. Недостатки / предостережения у нас были:
Но обратите внимание: это все специфично для нашей среды и т. Д., Поэтому может не применяться.
источник