Могу ли я создать индекс для таблицы в базе данных MySQL во время использования

21

И если я могу, любая причина (производительность / стабильность), почему я не должен?

Nifle
источник

Ответы:

17

Обратите внимание, что если ваша таблица использует механизм хранения плагинов InnoDB (который я настоятельно рекомендую), если это вторичный индекс (почти наверняка), вы все равно можете читать из таблицы (то есть она не блокирует SELECTоператоры).

Riedsio
источник
1
Обновление MySQL 5.6 (февраль 2013 г.): теперь вы можете читать и записывать в таблицу с помощью интерактивного DDL - dev.mysql.com/doc/refman/5.6/en/…
Морган Токер
15

Да, ты можешь. Он заблокирует таблицу, к которой вы добавляете индекс, во время его создания. Если таблица большая, может потребоваться некоторое время, так как она должна прочитать каждую строку при построении индекса.

Зак Вилли
источник
У Facebook есть решение для этого онлайн. Не пробовал из себя: facebook.com/notes/mysql-at-facebook/...
esilver