У меня есть несколько вопросов относительно индексации MySQL:
1) Есть ли какое-либо увеличение скорости при индексации таблицы, хранимой в памяти?
2) При поиске моей таблицы я соответствую на поле столбца, был бы, индексируя каждый столбец победить цель индекса?
Большое спасибо.
Индексирование любой таблицы, будь то память или файловая система, ускорит запросы, которые выбирают или сортируют результаты на основе этого столбца. Это происходит потому, что индекс работает как древовидная структура, а расстояние поиска зависит от глубины дерева, которая увеличивается гораздо медленнее, чем количество строк в столбце (логарифмически).
Индексирование каждого столбца не противоречит цели индекса, но оно замедляет вставки и обновления, поскольку эти изменения приводят к обновлению каждого индекса этой таблицы. Кроме того, индексы занимают место на сервере базы данных, так что это еще один недостаток, который следует учитывать.
Другие вопросы SO для чтения, связанные с этим вопросом:
Лучшие практики индексирования
Что такое индекс
Сколько индексов достаточно
1) Да, конечно.
2) Нет, это не отменяет цели index. Просто помните, что mysql не может использовать более 1 индекса на таблицу и что добавление большего количества индексов замедляет операции вставки / обновления / удаления. Поэтому избегайте создания индексов, которые не используются, вместо этого создавайте индексы из нескольких столбцов, которые лучше всего соответствуют вашим запросам.