Задать вопрос

MySQL InnoDB + MyISAM

Доброго времени суток.

Собственно вопрос нормально ли использовать различные типы таблиц в одной базе данных?
Чем это чревато?

Необходимость использовать innoDB + MyISAM в одном из проектов заключается в том что — необходим полнотекстовый поиск + транзакции и ограничение целостности.

Возможно под такую задачу существуют более подходящие субд но одно из требований это использование
в проекте именно mySQL.
  • Вопрос задан
  • 5300 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
sl_bug
@sl_bug
А нельзя полнотекстовый поиск повесить на sphinx например? И тогда все таблицы в innoDB.
Ответ написан
Да, можно спокойно без проблем использовать.

Пара правил для таких систем (из личного опыта):
— Не делать совместных запросов на изменение. Лучше делать запрос к каждому виду таблицы по отдельности.
— Типы связанных полей должны быть полностью одинаковыми.
— Для бекапа использовать сохранения в дамп. Никакого копирования файлов — чревато порчей данных.
Ответ написан
Комментировать
printf
@printf
Ем детей.
Поиск правда лучше вынести наружу. Вообще их можно использовать вместе, иногда так делают. Транзакционность и проверки внешних ключей на MyISAM не распространятся, остальное будет работать.
Ответ написан
Комментировать
@resurection
С транзакциями будут проблемы. rallback будет работать странно: он откатит только часть изменений — ту часть которая была сделана в InnoDB. А ту которая в MyISAM оставит. Естественно, это проявится не только на rallback, но может проявится например при падении сервера, когда foreign keys сработать не успеют, транзакция откатится частично.
Ответ написан
Комментировать
Postgresql + tsvector
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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