Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет.
Что-то я запутался. Может кто то на пальцах сказать когда стоит использовать InnoDB ?
Не в сети
MySQL < 5.6 ? MyISAM : InnoDB.
Не в сети
лучше объяснить причины:
- InnoDB лучше тем, что поддаётся восстановлению при падении БД, по логам этой самой БД в автоматическом режиме (требует соответствующих настроек).
- InnoDB работает по принципу бухгалтерии, - двойная запись. Пишет в 2 разных контейнера. При этом это его никак не ускоряет.
На последних версиях мускула и (плохом|нормальном|хорошем|отличном) железе работает довольно шустро.
- MyISAM более менеее портируем на уровне переноса папки с файлами (возможность зависит от прав доступа и версии мускула)
- MyISAM катастрофически быстр, но при этом любой кирдык === будет кирдык, ибо хранит данные практически на уровне контента файлов. Любое повреждение одного из трёх файлов таблицы === кирдык таблице.
Не в сети
Спасибо!
Не в сети
Ты забыл главное, ради чего стоит использовать InnoDB: внешние ключи (foreign keys). До MySQL 5.6 MyISAM был смысл использовать, т.к. только оно поддерживало FULLTEXT-поля (т.е. бинарный поиск по строкам), но с этой версии он доступен и для InnoDB. Лично для меня это сняло все вопросы, какой движок использовать.
Насчёт скорости MyISAM вопрос спорный, я видел такие суждения, но не проверял, действительно ли выигрыш на реальных данных/сайтах ощутимый или он скрадывается другими особенностями и не играет роли.
Но чего у MyISAM точно не отнимешь — простоты. Чтобы перенести всю БД или отдельную таблицу достаточно скопировать файлы и перезапустить сервис. А чтобы перенести InnoDB надо сделать дамп, а это для больших баз ой какая проблема… Немного проще, если сервер чистый — можно всю /var/lib/mysql переместить, но у неё раздутый размер за счёт журнала и работать пока делается перенос ни исходный сервер, ни конечный не будут.
Не в сети
Страницы 1