Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.07.2021, 15:40
|
|||
---|---|---|---|
|
|||
Как оптимизатор подбирает план |
|||
#18+
Добрый день есть мария 10.4 есть запрос Код: plsql 1.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
show index при этом вот такой Код: plaintext 1. 2. 3. 4. 5.
Судя по Cardinality должен выбираться PRIMARY, но все равно выбирается pole_2 что в плане, что по факту. Интересно, почему так происходит . . . Причем если в IN перечислисть до 5 значнией то все хорошо, стабильно primary ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.07.2021, 15:52
|
|||
---|---|---|---|
Как оптимизатор подбирает план |
|||
#18+
Ну вообще-то в InnoDB любой индекс содержит выражение первичного индекса. Так что по факту индекс по pole_2 содержит компоненту id. Насчёт вторичной сортированности по нему - ничего не скажу, надо смотреть интёрналсы. Что же до количества - стандартные настройки оптимизатора считают, что ~10 значений в списке - это именно тот порог, когда сканирование выгоднее использования индекса. И cardinality тут емнип вообще не смотрится. В любом случае - есть index hints. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/search_topic.php?author=%D0%9C%D0%B5%D0%B6%D0%B8%D0%BA&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 435ms |
total: | 591ms |
0 / 0 |