Индексация каждого столбца в таблице

У меня есть несколько вопросов относительно индексации MySQL:

1) Есть ли какое-либо увеличение скорости при индексации таблицы, хранимой в памяти?

2) При поиске моей таблицы я соответствую на поле столбца, был бы, индексируя каждый столбец победить цель индекса?

Большое спасибо.

12
задан Linus Norton 9 July 2010 в 08:40
поделиться

2 ответа

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

Индексирование каждого столбца не противоречит цели индекса, но оно замедляет вставки и обновления, поскольку эти изменения приводят к обновлению каждого индекса этой таблицы. Кроме того, индексы занимают место на сервере базы данных, так что это еще один недостаток, который следует учитывать.

Другие вопросы SO для чтения, связанные с этим вопросом:

Лучшие практики индексирования
Что такое индекс
Сколько индексов достаточно

20
ответ дан 2 December 2019 в 07:02
поделиться

1) Да, конечно.
2) Нет, это не отменяет цели index. Просто помните, что mysql не может использовать более 1 индекса на таблицу и что добавление большего количества индексов замедляет операции вставки / обновления / удаления. Поэтому избегайте создания индексов, которые не используются, вместо этого создавайте индексы из нескольких столбцов, которые лучше всего соответствуют вашим запросам.

2
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: