У меня есть две таблицы:Postgresql 8.3, простой запрос не использует индекс
table1 (about 200000 records)
number varchar(8)
table2 (about 2000000 records)
number varchar(8)
«номер» Поля в обеих таблицах имеют стандартные индексы. Для каждой записи в таблице 1 имеется около 10 записей в таблице2.
я выполнить запрос:
explain select table1.number from table1, table2 where table1.number = table2.number;
План запроса показывает, что индексы не будут использоваться, Seq сканы во всем;)
Но если уменьшить количество записей в table1 до ~ 2000 плана запроса начинает показывать, что будет использоваться индекс.
Возможно, кто-нибудь может мне сказать, почему postgresql ведет себя таким образом?
Из-за прошлых дизайнерских решений это не всегда число –