why does seq scan instead of index scan
От | 中川 誠貴 |
---|---|
Тема | why does seq scan instead of index scan |
Дата | |
Msg-id | 49A94E2FF0F642B4ACBE09DB20CA5630@IVPNAKAGAWAPC обсуждение исходный текст |
Ответы |
Re: why does seq scan instead of index scan
|
Список | pgsql-sql |
Hello everyone. I'm trying to use like 'xx%' search on Text[] column. Here is the SQL. Select * From table Where 'aa' <= ANY(keywords) and 'aa\uFFFD' > ANY(keywords) This looks like wooking as I intend. But partially not working. There is the explanation. Explain Select * From table Where 'aa' <= ANY(keywords) and 'aa\uFFFD' > ANY(keywords) --\uFFFD is max unicode -- keywords field is Text[] "Seq Scan on table (cost=10000000000.00..10000000081.98 rows=275 width=1870)" " Filter: (('aa'::text <= ANY (keywords)) AND ('aa\uFFFD'::text > ANY (keywords)))" I thought it uses index scan. But actually it uses seq scan. Why? I don't get it. When I seach with the following SQL on Text column, it uses index scan, and perfectlly working. Select * From table Where keyword >= 'aa' and keyword < 'aa\uFFFD' "Bitmap Heap Scan on table (cost=4.36..35.63 rows=11 width=1870)" " Recheck Cond: ((keyword >= 'aa'::text) AND (keyword < 'aa\uFFFD'::text))" " -> Bitmap Index Scan on table_keyword_idx (cost=0.00..4.36 rows=11 width=0)" " Index Cond: ((keyword >= 'aa'::text) AND (keyword < 'aa\uFFFD'::text))" INDEX table_keywords_idxON tableUSING GIN(keywords); INDEX table_keyword_idxON tableUSING btree(keyword); I changed the index, table_keywords_idx to btree, but also not working... Why index scan is not used on Text[], despite index scan used on Text field? Thank you in advance.
В списке pgsql-sql по дате отправления: