Re: Как узнать почему не используются индексы в postgresql
От: Centaur Россия  
Дата: 29.01.10 11:00
Оценка: 1 (1)
Здравствуйте, sergey 123, Вы писали:

S1>Всем привет!


S1>Есть таблица t1(a integer, b integer). Есть индексы(btree) на a и b и primary key(составной) из а и b. А таблице где-то около 1000 записей.


S1>Собственно как узнать почему seq scan, а не index scan. Думаю, что потому что мало записей в таблице, но как подтвердить или опровергнуть это гипотезу?


Для такой маленькой таблицы (грубо говоря, 8…16 килобайт в зависимости от битности integer) действительно быстрее всю её всосать в память и искать тупым сканированием.

Если записей будет существенно больше, скажем, миллиард, то и тогда я бы ожидал, что для поиска по полю a хватит составного PK по (a, b). Вообще, от индексов по (x1, … xN) мало толку при существующем индексе по (x1, …, xN, …, xM).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.