我正在使用PostgreSQL。我創建了一個索引指定列:Postgres不會從文本/ varchar列獲取索引
# CREATE INDEX sampleidx ON fake_organizations (objectable_type) ;
CREATE INDEX
領域objectable_type
有varchar
類型。當我按字段選擇記錄時,它使用SeqScan
進行顯式類型轉換,並且不選取索引。
# explain analyze select * from fake_organizations where objectable_type = 'Lot' LIMIT 10;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------
Limit (cost=0.00..2.01 rows=10 width=493) (actual time=0.001..0.001 rows=0 loops=1)
-> Seq Scan on fake_organizations (cost=0.00..11.88 rows=59 width=493) (actual time=0.000..0.000 rows=0 loops=1)
Filter: ((objectable_type)::text = 'Lot'::text)
Planning time: 0.765 ms
Execution time: 0.027 ms
(5 строк)
當列的類型爲text
時,發生同樣的情況,但沒有類型轉換。
所以問題是:爲什麼?
表中有多少行? – joop
@joop測試env沒有記錄,在戰場env〜10M。 –