如何在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(的最近记录。

那么如何创建这样的综合指数呢?提前感谢!

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

最新更新