Назад | Перейти на главную страницу

Совместная производительность на таблицах MyISAM и InnoDB

Я думаю о преобразовании некоторых таблиц из MyISAM в InnoDB на моем сервере mysql. Таблицы, безусловно, выиграют от этого изменения, потому что в эти таблицы поступает много запросов на запись, в то время как одновременно существует довольно много запросов на чтение.

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

Второй вопрос: во время резервного копирования ночью я копирую данные из таблиц InnoDB в таблицы MyISAM для архивирования. В этих резервных копиях происходит много запросов на запись, однако чтение из этих архивных таблиц почти не производится. Получат ли эти таблицы выгоду от использования InnoDB или это просто пустая трата места и оперативной памяти?

Преобразование таблиц из MyISAM в InnoDB действительно принесет пользу одновременной записи, а также атомным блокировкам.

Сочетание таблиц InnoDB и MyISAM ни в коем случае не должно влиять на производительность соединения, если только эти соединения не попытаются заблокировать всю таблицу MyISAM (что очень маловероятно), выполнив EXPLAIN всегда поможет диагностировать запросы.

По поводу второго вопроса, поскольку они являются резервными таблицами и почти никогда не используются, они определенно воспользуются преимуществом MyISAM для максимальной производительности записи.

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