Когда я обновляю особенно большую таблицу, обновление заканчивается, потому что таблица заблокирована, а индексы перестраиваются. Есть ли способ перестроить индекс ONLINE (т. Е. Oracle), чтобы обновление не зависало?Восстановить индекс InnoDB ONLINE для предотвращения перерывов?
2
A
ответ
0
Простой ответ: Нет, нет способа.
Более сложный ответ: вы можете эмулировать добавление онлайн-индексов, используя репликацию на основе утверждений и сначала добавляя указатель к подчиненному устройству, а затем делая его хозяином. Вот почему люди используют пакеты, такие как http://mysql-mmm.org/.
Это обновление для одной строки или массовое обновление? Можете ли вы сбросить индексы, выполнить обновление, а затем воссоздать индексы? –
Это для одной строки, но это многопользовательская система, и сейчас любое обновление этой таблицы блокирует таблицу до тех пор, пока индексы не будут перестроены. Это вызывает ошибки времени ожидания для других пользователей, отправляющих обновления в другие строки в одной таблице. –