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

Можно ли как то отключать и включать индексы в MySql 5.7 в InnoDB для больших вставок данных?

Какие есть способы отключения и включения индексов, в том числе полнотекстовых в MySql 5.7 - InnoDB ?
Если вариант ниже в InnoDB - не работает.
ALTER TABLE officials DISABLE KEYS;
Вставки будут относительно массивными, поэтому не хочу чтобы индексы каждый раз пересчитывались.

Прошу не ругать, я с MySQL на "Вы".
Спасибо.
  • Вопрос задан
  • 2007 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
viwoam
@viwoam
I solve problems!
В InnoDB нельзя, в MyISAM можно.

1. Убедитесь что у вас batch insert а не по одному.

К примеру
INSERT INTO my_table (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

А не
INSERT INTO my_table (a,b,c) VALUE(1,2,3);
INSERT INTO my_table (a,b,c) VALUE(4,5,6);
INSERT INTO my_table (a,b,c) VALUE(7,8,9);

2. Тут некоторые трюки https://dev.mysql.com/doc/refman/5.7/en/optimizing...
3. Почитайте тут еше stackoverflow.com/questions/5613756/mysql-pause-in...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gobananas
@gobananas
finishhim.ru
ALTER TABLE db.my_table DISABLE KEYS;
// Вставка больших данных
ALTER TABLE db.my_table ENABLE KEYS;

Только не пользуйтесь часто и не забывайте что чтение в этот момент невозможно по сути
Ответ написан
Ваш ответ на вопрос

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

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