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

Можно ли делать таблицы MYISAM + INNODB?

Подскажите пожалуйста.

1) Можно ли делать в одной БД таблицы и MyISAM и InnoDB?
Для некоторых таблиц, например новостных, статистики, кэша не зачем делать все таблицы InnoDB. Так там нет ни ключей внешних. А вес таблиц тех же новостей в формате InnoDB растет в 2 раза. Можно ли оставить два формата?

2) Нет ли тут подвоха "InnoDB free: xx kB"? Проект действующий, не маленький. Вдруг после смены формата таблиц из-за этой надписи что-то случиться? Я так понял это остаток. Что будет потом?
  • Вопрос задан
  • 597 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
Melkij
@Melkij
PostgreSQL DBA
1) можно.
Но если вам всё равно не нужны ваши данные - сделайте memory (не шутка для кеша) или blackhole. Они быстрее работают.
2) после смены innodb->myisam явно что-нибудь произойдёт с производительностью. Например, всё встанет колом на интенсивной записи из-за соответствующей табличной блокировке.
Или покрэшится на ровном месте, тоже бывает.

innoDB - это не внешние ключи, а несколько десятков лет наработанной теории и граблей транзакционных систем, и не просто begin/commit, а как ни в коем случае не потерять ни одной закомиченной транзакции при аварии.
Ответ написан
NaN
@NaN
прямой ответ - Да.
Можно их join и прочее.
Но ведь необходимость InnoDB обуславливается не только внешними ключами. Смотрите по ситуации.
Не сильно критичные данные можно запросто хранить в myisam.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
А вес таблиц тех же новостей в формате InnoDB растет в 2 раза.

насколько я помню если брать таблицу без индексов (ну только с PK) в MyISAM и InnoDB то там оверхэд на ряд где-то 20 байт... Далее идут свои нюансы с ключами... но это так же мелочи.

вы либо удаляете из таблицы записи какие-то, либо не уверен. Но в любом случае InnoDB стоит использовать если есть такая возможность (с учетом того что в MySQL 5.6 уже есть full text индексы в InnoDB то в MyISAM возникает необходимость только в очень крайних ситуациях). Вы OPTIMIZE TABLE делали вообще?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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