Что именно произошло с операцией индексации? - PullRequest
3 голосов
/ 03 октября 2010

Я сегодня проиндексировал огромную таблицу, содержащую 2 миллиарда записей. Я думал, что MySQL поглотит мой диск объемом 2 ТБ ... Потребление диска увеличивалось до 400 ГБ, а затем до 500 ГБ, а затем, наконец, падает до 180 ГБ, и MySQL сообщает, что успешно добавил индекс. Почему пространство увеличилось и что случилось в итоге? Может кто-нибудь дать мне несколько советов?

1 Ответ

4 голосов
/ 03 октября 2010

Кстати, вчера я ответил на вопрос о том, как ускорить создание индекса в MySQL , и из моего исследования вышло следующее:

Команды CREATE INDEX и DROP INDEX работают путем создания новой пустой таблицы, определенной с запрошенным набором индексов. Затем он копирует существующие строки в новую таблицу один за другим, обновляя индексы по мере необходимости. Вставка записей в индексы таким образом, когда значения ключей не отсортированы, требует произвольного доступа к узлам индекса и далека от оптимальной. После копирования всех строк из исходной таблицы старая таблица удаляется, а копия переименовывается с именем исходной таблицы.

Источник: Обзор быстрого создания индекса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...