Последствия индексации логических полей для производительности
В системах баз данных индексирование полей повышает производительность запросов, позволяя ядру базы данных быстро находить данные без сканирования весь стол. Однако прирост производительности от индексации логических полей был предметом споров.
Повышает ли индексирование логических полей производительность?
При выполнении запросов с такими предложениями, как WHERE boolean_field= правда, индексирование логического поля действительно может повысить производительность. Механизмы баз данных, такие как InnoDB, используют специальную технику, называемую индексированием растровых изображений для логических полей. Этот метод делит таблицу на разделы на основе значений полей (true/false).
Как работает индексирование растровых изображений
Индексирование растровых изображений выделяет бит для каждой строки в стол. Если бит установлен в 1, это означает, что соответствующая строка имеет значение true для логического поля. Затем механизм создает индекс, содержащий эти растровые изображения.
При выполнении запросов типа WHERE boolean_field=true механизм находит раздел, соответствующий значению true. Затем он сканирует растровое изображение, чтобы определить строки, соответствующие критерию, пропуская оставшиеся строки в других разделах. Это значительно уменьшает количество строк, которые необходимо проверить, по сравнению со сканированием всей таблицы.
Эмпирический пример
Как упоминалось в предоставленном ответе, добавление индекс по логическому полю на порядки ускорил запросы в таблице с 4 миллионами строк. Первоначальное время выполнения в 9 секунд упало до доли секунды. Это демонстрирует потенциальное повышение производительности, которое может обеспечить индексирование растровых изображений.
Вывод
Вопреки мнению, что индексирование логических полей бесполезно, в некоторых случаях оно может обеспечить существенный прирост производительности. где запрос специально фильтрует логическое поле, а распределение данных позволяет эффективно использовать индексацию растровых изображений. Поэтому рассмотрите возможность индексирования логических полей, когда набор данных демонстрирует значительную предвзятость к определенным значениям или когда рабочая нагрузка запроса часто включает фильтрацию по этим полям.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3