小编Ton*_*ark的帖子

PostgreSQL 忽略 TEXT 字段上的(唯一)索引

我有一张users类似于

CREATE TABLE users (
  id bigserial NOT NULL,
  msisdn text NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

以及在 上UNIQUE定义的约束msisdn

ALTER TABLE users ADD CONSTRAINT UNIQUE (msisdn);
Run Code Online (Sandbox Code Playgroud)

现在,我试着跑

EXPLAIN SELECT * FROM users WHERE msisdn = '000000000001';
Run Code Online (Sandbox Code Playgroud)

和 PostgreSQL 正在回归

Seq Scan on users  (cost=0.00..7.80 rows=1 width=400)
  Filter: (msisdn = '000000000001'::text)
Run Code Online (Sandbox Code Playgroud)

该表目前有 256 行。会不会是表太小以至于PostgreSQL认为做全表扫描而不是扫描索引更好?如何确保 PostgreSQL 实际使用索引而不是进行全表扫描?

postgresql index postgresql-9.4

4
推荐指数
1
解决办法
743
查看次数

标签 统计

index ×1

postgresql ×1

postgresql-9.4 ×1