Несколько индексов в одном столбце для повышения скорости поиска - PullRequest
0 голосов
/ 15 марта 2020

Я работаю над веб-сканером. Чтобы предотвратить сканирование дубликатов URL, я сохранил MD5 любого URL в столбце. Чтобы выполнить быстрый поиск по значениям MD5, я создал INDEX для столбца md5.

Поскольку я понятия не имею, есть ли разница между AS C и DES C на md5, у меня есть установите порядок сортировки этого индекса как AS C. Мой вопрос заключается в том, что если определение другого индекса в том же столбце с помощью порядка DES C улучшит скорость поиска? Запускает ли ядро ​​базы данных (в моем случае SQL server 2016) два параллельных поиска в одном столбце, если в одном столбце несколько индексов?

1 Ответ

1 голос
/ 15 марта 2020

AS C против DES C ничего не изменит - оптимизаторы RDBMS очень хорошо спроектированы и их трудно «побить» дешевыми трюками. Поскольку индекс отсортирован, а направление известно, поиск можно начинать сверху или снизу и читать в любом направлении.

Необходимые файлы подкачки будут быстро расположены независимо от направления сортировки.

Может существовать разница между кластеризованным и некластеризованным индексом, однако в зависимости от ваших объединений и наборов данных.

Индексы также не являются бесплатными, помните, стоимость часто зависит от взаимодействия с (вставьте / delete / alter) функционирует вместе с автономными функциями, такими как резервное копирование. Есть также космические проблемы.

Мой совет - создавать правильные индексы на основе наиболее вероятных болезненных запросов. Часто лучший способ сделать это - метод проб и ошибок вместе с реальными тестовыми образцами!

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