相关疑难解决方法(0)

未使用数据类型 citext 的列上的索引

在 PostgreSQL 9.4 中,具有以下架构:

CREATE TABLE people (
    id INTEGER PRIMARY KEY,
    name TEXT,
    junk CHAR(1000)
);

INSERT INTO people(id, name)
 SELECT generate_series(1,100000), md5(random()::text);

CREATE INDEX ON people (name text_pattern_ops);
Run Code Online (Sandbox Code Playgroud)

如果我按名称搜索,则使用索引:

test=# explain analyze select id, name from people where name like 'a%';
                                                           QUERY PLAN                                                           
--------------------------------------------------------------------------------------------------------------------------------
 Bitmap Heap Scan on people  (cost=248.59..1160.92 rows=6061 width=37) (actual time=2.412..8.340 rows=6271 loops=1)
   Filter: (name ~~ 'a%'::text)
   Heap Blocks: exact=834
   ->  Bitmap Index Scan on people_name_idx  (cost=0.00..247.08 rows=6266 width=0) (actual time=2.123..2.123 rows=6271 loops=1)
         Index Cond: …
Run Code Online (Sandbox Code Playgroud)

postgresql index pattern-matching case-sensitive

3
推荐指数
1
解决办法
3868
查看次数