Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.11.2016 11:48:08

Когда все таки использовать InnoDB ?

Всем привет.

Что-то я запутался. Может кто то на пальцах сказать когда стоит использовать InnoDB  ? smile

Не в сети

#2 18.11.2016 11:51:09

Re: Когда все таки использовать InnoDB ?

MySQL < 5.6 ? MyISAM : InnoDB.

Не в сети

#3 18.11.2016 12:39:08

Re: Когда все таки использовать InnoDB ?

лучше объяснить причины:

- InnoDB лучше тем, что поддаётся восстановлению при падении БД, по логам этой самой БД в автоматическом режиме (требует соответствующих настроек).

- InnoDB работает по принципу бухгалтерии, - двойная запись. Пишет в 2 разных контейнера. При этом это его никак не ускоряет.
На последних версиях мускула и (плохом|нормальном|хорошем|отличном) железе работает довольно шустро.

- MyISAM более менеее портируем на уровне переноса папки с файлами (возможность зависит от прав доступа и версии мускула)

- MyISAM катастрофически быстр, но при этом любой кирдык === будет кирдык, ибо хранит данные практически на уровне контента файлов. Любое повреждение одного из трёх файлов таблицы === кирдык таблице.

Не в сети

#4 18.11.2016 13:09:45

Re: Когда все таки использовать InnoDB ?

Спасибо!

Не в сети

#5 18.11.2016 15:22:05

Re: Когда все таки использовать InnoDB ?

Ты забыл главное, ради чего стоит использовать InnoDB: внешние ключи (foreign keys). До MySQL 5.6 MyISAM был смысл использовать, т.к. только оно поддерживало FULLTEXT-поля (т.е. бинарный поиск по строкам), но с этой версии он доступен и для InnoDB. Лично для меня это сняло все вопросы, какой движок использовать.

Насчёт скорости MyISAM вопрос спорный, я видел такие суждения, но не проверял, действительно ли выигрыш на реальных данных/сайтах ощутимый или он скрадывается другими особенностями и не играет роли.

Но чего у MyISAM точно не отнимешь — простоты. Чтобы перенести всю БД или отдельную таблицу достаточно скопировать файлы и перезапустить сервис. А чтобы перенести InnoDB надо сделать дамп, а это для больших баз ой какая проблема… Немного проще, если сервер чистый — можно всю /var/lib/mysql переместить, но у неё раздутый размер за счёт журнала и работать пока делается перенос ни исходный сервер, ни конечный не будут.

Не в сети

Подвал раздела