Механизм хранения для таблицы не поддерживает ремонт. InnoDB или MyISAM?

После восстановления моей базы данных я получил следующую ошибку:

scode_tracker.ap_visits
note     : The storage engine for the table doesn't support repair
scode_tracker.visit_length
note     : The storage engine for the table doesn't support repair

Я узнал, что тип таблицы - InnoDB. Другая таблица была MyISAM, и она была успешно восстановлена.

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

Ответы

Ответ 1

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

 ALTER TABLE t1 ENGINE=MyISAM;

Ответ 2

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

Некоторые ключевые точки будут:

  • InnoDB выполняет ACID-совместимую транзакцию. http://en.wikipedia.org/wiki/ACID
  • InnoDB выполняет ссылочную целостность (отношения внешних ключей) http://www.w3resource.com/sql/joins/joining-tables-through-referential-integrity.php
  • MyIsam выполняет полнотекстовый поиск, InnoDB не
  • Мне сказали, что InnoDB быстрее выполняет записи, но медленнее, чем MyISAM делает чтение (я не могу поддержать это и не могу найти какую-либо статью, которая анализирует это, однако у меня есть парень, который сказал мне это с большим уважением) не стесняйтесь игнорировать этот момент или делать собственные исследования.
  • Конфигурация по умолчанию не работает очень хорошо, так как InnoDB необходимо соответствующим образом настроить, запустите инструмент, например http://mysqltuner.pl/mysqltuner.pl, чтобы помочь вам.

Примечания:

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

Notes2: - Я читаю эту книгу "Высокая производительность MySQL", автор говорит: "InnoDB загружает данные и создает индексы медленнее, чем MyISAM", это также может быть очень важным фактором при принятии решения о том, что использовать.

Ответ 3

У вас неправильная таблица, установленная в команде. Вы должны использовать следующие настройки:

ALTER TABLE scode_tracker.ap_visits ENGINE=MyISAM;