CamaroSS
Well-Known Member
- Регистрация
- 21.02.2012
- Сообщения
- 176
MySQL:
Есть MyISAM таблица, записи в которой периодически чистятся (с ~12млн до ~7млн)
Способ нормально почистить её, никому не мешая, я нашёл. Но после этого нужно прогнать оптимайз, который гораздо резвее идёт, если сначала дропнуть индексы, а потом их перестроить.
Так вот,
ALTER TABLE t1 DISABLE KEYS;
--> сюда
OPTIMIZE TABLE t1;
ALTER TABLE t1 ENABLE KEYS;
может пробиться какой-нибудь левый запрос (или несколько), который пойдёт шерстить таблицу без индексов, заметно откладывая по времени другие шаги.
Вопрос: как заблокировать таблицу для всех остальных на время операции?
Есть MyISAM таблица, записи в которой периодически чистятся (с ~12млн до ~7млн)
Способ нормально почистить её, никому не мешая, я нашёл. Но после этого нужно прогнать оптимайз, который гораздо резвее идёт, если сначала дропнуть индексы, а потом их перестроить.
Так вот,
ALTER TABLE t1 DISABLE KEYS;
--> сюда
OPTIMIZE TABLE t1;
ALTER TABLE t1 ENABLE KEYS;
может пробиться какой-нибудь левый запрос (или несколько), который пойдёт шерстить таблицу без индексов, заметно откладывая по времени другие шаги.
Вопрос: как заблокировать таблицу для всех остальных на время операции?