быстрее, еще быстрее

nevermind
Дата: 06.05.2004 12:50:59
Есть таблица, формируемая из двух других для возможности "лобового" выбора вместо джойна (время выборки очень критично):
Таблица "public.shop_show"
Колонка | Тип | Модификаторы
---------------+-------------------------+--------------
lnk_active | character varying(100) | not null
lnk_passive | character varying(100) | not null
lnk_type | character varying(50) | not null
ordnum | numeric(10,0) | default 10
sg_code | integer |
sg_type | character varying(100) |
sg_title | character varying(300) |
sg_abstract | character varying(2000) |
sg_text | text |
sg_price | numeric(10,2) |
sg_quantity | integer |
sg_pic_exists | smallint | default 0
sg_status | character varying(1) | default 'r'
Индексы: shop_show_pkey ключевое поле btree (lnk_active, lnk_passive, lnk_type),
shop_show_alp_idx unique btree (lnk_active, lnk_type, lnk_passive),
shop_show_pla_idx unique btree (lnk_passive, lnk_type, lnk_active),
shop_show_title_idx btree (sg_title)

КАКОЙ ИНДЕКС ЕМУ ЕЩЕ НАДО ВВЕСТИ, ЧТОБЫ ЗАПРОС:
explain analyze select * from shop_show where lnk_passive = 1234;
QUERY PLAN
------------------------------------------------------------------------------------------------------------
Seq Scan on shop_show (cost=0.00..27828.06 rows=5 width=599) (actual time=26.19..6638.54 rows=10 loops=1)
Filter: ((lnk_passive)::text = '1234'::text)
Total runtime: 6638.68 msec
(записей: 3)

ВЫПОЛНЯЛСЯ НЕ FULLSCAN-ом а по индексу?!

Спасибо!
nevermind
Дата: 06.05.2004 12:55:47
Да, по lnk_passive индекс вводил - ситуация та же :(
Заглянул
Дата: 06.05.2004 13:11:13
Поле varchar, а в запросе число. Может, число в кавычки взять или поменять тип поля?
Заглянул
Дата: 06.05.2004 13:13:35
Если в условиях выборки используется неявное преобразование, то индекс использоваться не будет.
nevermind
Дата: 06.05.2004 13:49:50
ТОЧНААА!!! Обожаю этот форум! Ламер я конечно! Учусь :) СПАСИБО!!!!!!