вопросы о размере и дублировании индекса mysql - PullRequest
1 голос
/ 20 июля 2010

У меня есть несколько общих вопросов об индексе базы данных.Ожидаются ответы на любой вопрос:

  1. Как рассчитать общий объем памяти, занимаемый индексом.А размер индекса прямо пропорционален его Cardinality?

  2. Нужно ли индексировать первичный ключ или он индексируется самостоятельно.И как это повлияет на память и скорость обработки запросов выбора, вставки, обновления, если первичный ключ проиндексирован дважды (сначала автоматически при создании таблицы, затем вручную с другим именем)?

  3. Можетмы организуем или контролируем seq_in_index при использовании комбинированных индексов.Если да, каков наилучший способ сделать это в отношении количества отдельных индексов?

Заранее большое спасибо !!

1 Ответ

0 голосов
/ 04 мая 2011

Старый вопрос, и я удивлен, что ответа не было. Я сделаю удар.

  1. Общий размер всех индексов для таблицы можно увидеть с помощью «SHOW TABLE STATUS». Боюсь, что я не знаю, как получить истинный размер отдельного индекса, но он может быть таким же простым, как размер используемых столбцов и указатель на строку. Размер индекса будет зависеть от количества строк и ширины индекса. Поскольку каждая строка должна появляться в индексе, количество элементов не должно иметь значения.
  2. Первичный ключ получает индекс автоматически. Помните, что это уникальный индекс и значения NULL недопустимы (по сравнению с «обычными» индексами). Если mysql не будет умным под покровом, создание второго индекса создаст второй индекс. Каждый дополнительный индекс занимает место (диск / память) и время (вставка / обновление / удаление).
  3. Да, вы можете контролировать последовательность в составном индексе. Я делаю индексы, чтобы (по крайней мере) соответствовать предложениям WHERE (включая объединения) и, если возможно, включать столбцы, которые ВЫБИРАЮТСЯ из этой таблицы, чтобы все можно было собрать из индекса, а нижележащую строку не нужно было читать. Что касается кардинальности, избавьтесь от как можно большего числа рядов как можно быстрее.

Надеюсь, это поможет.

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