Могу ли я без проблем менять таблицу MySQL между InnoDB и MyISAM?

У меня есть сайт с достаточно большой базой данных, размером 3 Гб, парой таблиц с дюжиной миллионов записей.

В настоящее время это 100% на MyISAM, и у меня есть ощущение, что сервер работает медленнее, чем следовало бы из-за слишком большой блокировки, поэтому я хотел бы попробовать перейти на InnoDB и посмотреть, не улучшит ли это ситуацию. Тем не менее, мне нужно сделать это непосредственно в производстве, потому что, очевидно, без нагрузки это не имеет никакого значения.

Однако меня это немного беспокоит, потому что InnoDB на самом деле может быть медленнее, поэтому вопрос таков:

Если я преобразую все таблицы в InnoDB, и окажется, что я в худшем положении, чем раньше, могу ли я вернуться в MyISAM, ничего не потеряв?

Можете ли вы вспомнить какие-либо проблемы, с которыми я мог бы столкнуться? (Например, я знаю, что InnoDB хранит все данные в ОДНОМ большом файле, который становится только больше, может ли это быть проблемой?)

большое спасибо
Даниил

1 ответ

Я несколько раз пытался изменить движок БД в mysql, и у меня не возникло проблем.

Однако я предпочитаю делать это на тестовой машине. Вам нужно просто экспортировать базу данных и импортировать ее на машину для тестирования. Затем вы можете изменить двигатель и проверить наличие ошибок / предупреждений / потери данных, если таковые имеются. Для генерации нагрузки вы можете создать свой собственный скрипт для имитации реальной нагрузки или использовать существующий инструмент для этого. Для этого вам нужно использовать достаточно мощную машину, чтобы разумно оценивать производительность.

Другие вопросы по тегам