Я могу использовать таблицы InnoDB и MyISAM в ОДНОЙ базе данных?

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

10
задан BenV 29 June 2010 в 05:06
поделиться

3 ответа

REMEMBER! Смешивать типы таблиц в одной базе данных - это нормально! На самом деле это рекомендуется и часто требуется. Однако, важно отметить, что если у вас возникают проблемы с производительностью при соединении этих двух типов, попробуйте преобразовать один в другой и посмотрите, исправит ли это. Эта проблема случается не часто, но об этом сообщалось.

Взято из MySQL - InnoDB vs MyISAM

18
ответ дан 3 December 2019 в 16:52
поделиться

Одним словом да. (CREATE TABLE позволяет указать тип движка.)

Тем не менее, вы должны быть осторожны, когда вы делаете запрос по нескольким типам таблиц. (Например, вы не можете использовать посторонние ключи в MyISAM и не можете совершить транзакцию, которая влияет на таблицы MyISAM и т.д.)

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

.
1
ответ дан 3 December 2019 в 16:52
поделиться

Конечно, это возможно.

CREATE TABLE MyISAM_tbl(
    ....
)ENGINE=MyISAM;

CREATE TABLE InnoDB_tbl (
    ....
)ENGINE=InnoDB;

Я делаю это постоянно, потому что я предпочитаю InnoDB для FK, но иногда мне нужна MyISAM для полнотекстового поиска. Никогда не было проблем.

5
ответ дан 3 December 2019 в 16:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: