Для каких сайтов лучше всего использовать InnoDB?

Последняя версия WordPress использует движок InnoDB и кодировку utf8mb4_unicode_520_ci.

Поэтому возникло несколько вопросов:
  1. InnoDB реально лучше MyISAM?
  2. InnoDB более требовательна к ресурсам?


Читал, что MyISAM изобрели в 1995 году и он устарел (больше не поддерживается). Я перешел на Percona Server 8.0.16-7, и кажись поддержка MyISAM в нём ограничена.

У меня оптовый интернет магазин, без возможности комментирования. Следовательно производится больше чтений, чем записи в БД. По логике, мне подходит MyISAM?

Еще один нюанс, который я заметил: после конвертации MyISAM в InnoDB размер базы данных вырос из 108 до 800 МБ. В MyISAM была возможность оптимизации, которая очень уменьшала размер таблиц. В InnoDB, кажись, такого нет.

Собственно, вопрос жизни и смерти: всегда использовать InnoDB и не париться?
  • Вопрос задан
  • 1065 просмотров
Решения вопроса 1
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
По умолчанию InnoDB.
Когда будет сайт на 100 Гб БД, тогда есть смысл выбирать движки.
Но таких сайтов на весь мир 3-4 штуки. Дорасти до такого шансов мало.
Дорастете - у вас будет уже 10-20 своих программистов, которые решат этот вопрос на раз два.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@SergeyYii
Как раз для вас составил сводную таблицу в свое время:
https://blog-kopilka.ru/blog/otlichie-myisam-ot-innodb

У меня оптовый интернет магазин, без возможности комментирования. Следовательно производится больше чтений, чем записи в БД. По логике, мне подходит MyISAM?


Это совсем не аргумент. Вы же не чат пишете. У нас в проекте есть сборщик аналитики переходов, там данные пишутся примерно раз в 2-3 секунды и InnoDB отлично справляется.

Еще один нюанс, который я заметил: после конвертации MyISAM в InnoDB размер базы данных вырос из 108 до 800 МБ.


Попробуйте Postgres - результат вам очень сильно удивит... ;)
Ответ написан
Комментировать
@freehostua
Работаю в FREEhost.UA
InnoDB является движком по умолчанию в MySQL последних версий, а MyISAM остался только для совместимости. Поэтому лучше использовать InnoDB.

Важный момент про InnoDB - его ни в коем случае нельзя бекапить копируя структуру базы, как это многие делают в MyISAM. InnoDB бекапится только через дамп базы данных mysqldump. Поскольку по ресурсам это затратней и во время бекапа база может тормозить, для крупных проектов стоит сразу поднять slave и делать резервную копию с него.
Ответ написан
Комментировать
Captain
@Captain
Внешние ключи, транзакции. Если это не нужно, то можно и без InnoDB обходиться.
А так все зависит от нагрузки и т.п.
Ответ написан
Комментировать
@MR27
Для всех. Он надежнее. Можно просто использовать и не думать ни о чем.
Но MyISAM быстрее. С кучей ограничений, которые нужно понимать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы