У меня проблемы с большой таблицей MySQL InnoDB, и мне было интересно, есть ли у кого-нибудь здесь советы по улучшению стабильности.
У меня проблема в том, что CHECK TABLE ... FAST
заблокирует таблицу, предотвращая любое чтение, а для такой большой таблицы это означает, что она отключена в течение часа.
Будет запущена установка Debian по умолчанию CHECK TABLE
на все, когда MySQL запускается, и это вызывает простои. На данный момент я отключил эту функцию, но это заставляет меня немного нервничать, когда я использую такие системные настройки.
У меня есть еще одно задание cron, которое массово загружало данные в таблицу, которая использовала ALTER TABLE ... DISABLE KEYS
и ALTER TABLE ... ENABLE KEYS
, и возможно, что это связано, но я еще не смог это подтвердить.
Кто-нибудь видел ситуации, когда CHECK TABLE
предотвращает доступ к большим таблицам InnoDB?
Я писал в ServerFault некоторое время назад чтобы показать, что вы не можете ОТКЛЮЧИТЬ КЛЮЧИ и ВКЛЮЧИТЬ КЛЮЧИ в таблице InnoDB.
ПРОВЕРКА ТАБЛИЦЫ всегда должна блокировать любую таблицу MyISAM или InnoDB.
Вы можете создать сценарий с именем /var/lib/mysql/my_init.sql со следующим
ПРОВЕРИТЬ ТАБЛИЦУ <любая таблица 1>;
ПРОВЕРИТЬ ТАБЛИЦУ <любая таблица 2>;
...
Этот файл должен содержать любое количество таблиц, для которых вы хотите ПРОВЕРИТЬ ТАБЛИЦУ.
Теперь добавьте эту строку в /etc/my.cnf
файл инициализации = / var / lib / mysql / my_init.sql
Затем перезапустите mysql, и будет запущен сценарий настраиваемой таблицы проверки.
Кстати, я надеюсь, что вы используете innodb_file_per_table. Если вы не, пожалуйста прочтите этот URL