Чи можу я створити індекс на таблиці в базі даних MySQL під час використання


21

І якщо я можу, будь-яка причина (продуктивність / стабільність), чому я не повинен?

Відповіді:


17

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


1
Оновлення MySQL 5.6 (feb 2013): тепер ви можете читати та записувати до таблиці за допомогою DDL в Інтернеті - dev.mysql.com/doc/refman/5.6/uk/…
Morgan Tocker

15

Так, ти можеш. Він заблокує таблицю, до якої додаєте індекс під час її створення. Якщо таблиця велика, це може зайняти деякий час, оскільки доводиться читати кожен рядок під час створення індексу.


У Facebook є рішення для цього в Інтернеті. Я сам не пробував цього: facebook.com/notes/mysql-at-facebook/…
esilver
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.