MySQL Как добавить новый многоколонный индекс в таблицу innodb, не вызывая восстановления? - PullRequest
2 голосов
/ 21 февраля 2011

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

Сявляется ли таблица innodb, можно ли довольно быстро добавить новый индекс с помощью CREATE INDEX, или мне нужно создать резервную копию таблицы и восстановить ее в новой таблице с уже добавленными нужными индексами, как рекомендуется для таблиц MyISAM?Или есть другая стратегия, которая лучше подходит для innodb?

1 Ответ

1 голос
/ 22 апреля 2011

Добро пожаловать в ад. Я думаю, что у вас есть два варианта:

  1. терпят простои. Просто соболезную, у меня есть таблица с почти 400 миллионами строк.
  2. создать новую таблицу. Переместите в него свое живое приложение, а затем перенесите в него свои старые данные.
...