two, three)
Потом EXPLAIN SELECT * FROM table WHERE three = ?. Показывает, что index scan. Но cost больше, чем если все 3 поля. Я думал он в таком случае вообще индекс использовать не будет, но он использует, но как-то частично?
Где про это можно почитать? (как называется) Насколько это быстрее фулл скана? (в среднем по больнице)
Хотя щас чего-то читаю про multicolumn indexes в доке и как-то там все сложно в этом плане
> Показывает, что index scan. Но cost больше, чем если все 3 поля. Да, конечно. > Я думал он в таком случае вообще индекс использовать не будет, но он использует, но как-то частично? Будет, если индекс намного "уже", чем таблица (и, особенно, позволяет index-only scan и настройка costs). > Где про это можно почитать? (как называется) В PostgreSQL это называется index scan. ;) На самом деле тут происходит полное сканирование индекса. > Насколько это быстрее фулл скана? (в среднем по больнице) Это, зачастую, медленее. > Хотя щас чего-то читаю про multicolumn indexes в доке и как-то там все сложно в этом плане Да всё там просто для b-tree indexes, примерно как и в любой СУБД (т.е. почитайте какой-нибудь "базовый" материал на эту тему, хоть http://use-the-index-luke.com/ ).
Обсуждают сегодня