如何在PostgreSQL中创建包含(纬度,经度)和其他数据类型列的复合索引?

时间:2016-08-31 02:42:48

标签: sql database postgresql

DDL:

CREATE TABLE test
(
    longid bigint NOT NULL DEFAULT nextval('test_longid_seq'::regclass),
    longitude double precision,
    latitude double precision,
    create_ts_long bigint,
    CONSTRAINT test_pkey PRIMARY KEY (longid)
)

我们可以用它来创建要点索引:

CREATE INDEX ll_idx
    ON test USING gist
    (ll_to_earth(latitude ::double precision, longitude ::double precision))
    TABLESPACE pg_default;

但是有一种情况我想找到特定时间的最近记录(create_ts_long)。

那么如何创建这样的复合索引呢?提前谢谢!

1 个答案:

答案 0 :(得分:1)

安装btree_gist contrib模块 然后,您有一个gist_int8_ops运算符类,可用于在bigint列上创建GiST索引。