У меня есть одна база данных объемом около 4,5 ГБ, работающая на сервере с 8 ГБ ОЗУ. Подавляющее большинство таблиц - MyIsam (около 4,3 ГБ), но вскоре я собираюсь преобразовать некоторые из них в InnoDB. (Это будет медленный процесс, фокусирующийся сначала на таблицах с наибольшей интенсивностью записи).
Что-то не так с запуском выделенного сервера, на котором существуют оба типа механизмов хранения?
mysql
innodb
myisam
storage-engine
Дерек Дауни
источник
источник
Is there anything wrong with running a dedicated server where both types of storage engines exist?
Может быть перефразироватьMultiple types
?Ответы:
Нет ничего плохого в использовании нескольких механизмов хранения на одном физическом компьютере, если вы понимаете преимущества и недостатки каждого из них. Существуют соображения производительности, ограничения возможностей и варианты использования для всех типов хранилища плагинов.
Например, если у вас небольшая таблица, в которой 90% записей, вы можете выбрать MyISAM. Если данные можно легко восстановить и это небольшая таблица, скажем, для очередей, вы можете выбрать Память. Если у вас есть таблица, которая на 90% читает, и данные должны быть там, когда вы ее ищете, то вы, вероятно, выбрали бы механизм хранения, который поддерживает транзакции и настраиваемую атомарность, например InnoDB. Если вы хотите получить доступ через файловую систему без повреждения данных, вы можете выбрать CSV.
Тем не менее, вы можете безопасно использовать несколько механизмов хранения в одной и той же схеме, а также физический хост.
Позвольте мне отметить, что ваши буферы играют роль во всем этом беспорядке. Если вы используете и MyISAM, и InnoDB, вам нужно быть осторожным, чтобы ваши key_buffer и innodb_buffer_pool не конкурировали. Это потребует тщательного планирования с вашей стороны, но это то, что мы делаем.
источник
Я не могу сказать вам, если это обычная практика. Я могу сказать о своем собственном опыте.
Я всегда использую лучший инструмент для работы, поэтому я постоянно смешиваю двигатели. Большинство моих проектов используют MyISAM в качестве движка по умолчанию.
Когда мне нужны специальные функции, доступные только на InnoDB, я делаю это.
Когда таблица в основном доступна только для чтения, я выбираю механизм архивации, прежде чем смог моргнуть.
Зная, что на машинном сервере достаточно памяти, все мои временные данные хранятся в таблицах кучи.
В прошлом я видел некоторые замедления, смешивающие MyISAM и InnoDB, но это не является специфической проблемой MySQL. Это проблема дизайна, которая не проявляется, когда вы используете только один двигатель. На самом деле использование неправильного движка приводит к большему замедлению, не имеет значения, является ли это просто MyISAM, просто InnoDB или их комбинацией. Трудно определить формулу, чтобы знать, когда произойдет замедление. Только реальные тесты могут сказать это вам.
Конечно, вы не можете сохранить целостность и согласованность, смешивая InnoDB и MyISAM в одном запросе.
источник
Я стараюсь избегать смешивания таблиц MyISAM и InnoDB в одной и той же базе данных, но это из соображений здравого смысла, а не из практических соображений. Однако я считаю полезным иметь базу данных с таблицами MyISAM для полнотекстового поиска, чтобы я мог запускать ее на сайтах. Хранение его в отдельной базе данных с внешним ключом для каждой записи позволяет любым другим разработчикам, работающим с БД, видеть, что происходит.
источник