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


21

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

Ответы:


17

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


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

15

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


У Facebook есть решение для этого онлайн. Не пробовал из себя: facebook.com/notes/mysql-at-facebook/...
esilver
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.