Могут ли таблицы с механизмами InnoDB быть повреждены, когда базой данных механизма хранения по умолчанию является MyIsam? - PullRequest
0 голосов
/ 16 июня 2019

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

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

Пожалуйста, дайте мне некоторое объяснение о том, как и, возможно, решение моей проблемы. Спасибо.

1 Ответ

0 голосов
/ 16 июня 2019

Механизм хранения по умолчанию уместен, только если вы создаете таблицу, но вы не объявляете механизм явно.

// uses the default storage engine:
CREATE TABLE mytable ( ... );

// uses innodb storage engine, regardless of default:
CREATE TABLE mytable ( ... ) ENGINE=InnoDB;

Если вы объявляете вашу таблицу с ENGINE=InnoDB, она остается такой.Изменение механизма хранения по умолчанию на MyISAM не должно влиять на существующие таблицы.Это влияет только на таблицы, созданные впоследствии, и только в том случае, если они не указывают механизм.

Ошибка «таблица не существует в механизме» возникает, когда вы пытаетесь запросить таблицу, но табличное пространство было отброшено с помощью ALTER TABLE mytable DISCARD TABLESPACE, или если файл .ibd был удален из файловой системы.

Это означает, что кто-то уничтожил ваши данные.Если у вас нет резервной копии, сейчас нет способа ее восстановить.

InnoDB был механизмом хранения по умолчанию с 2010 года. Настало время рассматривать его как основной способ обработки данных в MySQL.

Надеюсь, вы найдете нового хостинг-провайдера.

...