如何解决为什么在Postgresql文档的LTree示例中,作者在ltree列上创建了两个索引?
有人可以解释为什么Postgresql documentation给出的示例中定义了两个索引机制(btree和gist)(请检查 F.21.4。示例部分)。
这是示例代码:
CREATE TABLE test (path ltree);
INSERT INTO test VALUES ('Top');
INSERT INTO test VALUES ('Top.Science');
INSERT INTO test VALUES ('Top.Science.Astronomy');
INSERT INTO test VALUES ('Top.Science.Astronomy.Astrophysics');
INSERT INTO test VALUES ('Top.Science.Astronomy.Cosmology');
INSERT INTO test VALUES ('Top.Hobbies');
INSERT INTO test VALUES ('Top.Hobbies.Amateurs_Astronomy');
INSERT INTO test VALUES ('Top.Collections');
INSERT INTO test VALUES ('Top.Collections.Pictures');
INSERT INTO test VALUES ('Top.Collections.Pictures.Astronomy');
INSERT INTO test VALUES ('Top.Collections.Pictures.Astronomy.Stars');
INSERT INTO test VALUES ('Top.Collections.Pictures.Astronomy.Galaxies');
INSERT INTO test VALUES ('Top.Collections.Pictures.Astronomy.Astronauts');
CREATE INDEX path_gist_idx ON test USING gist(path);
CREATE INDEX path_idx ON test USING btree(path);
在最后两行,作者在 path 列上创建了两个索引。为什么?要旨还不够吗?
在F.21.3节中,作者暗示b树和gist可以加快以下运算符的速度:
ltree上的B树索引: =,>
ltree上的Gist索引: =,>,@>,
这意味着对于上述所有操作员来说,Gist就足够了。请清除我的问题。作者是在这里尝试提供两个索引的示例,还是有理由同时使用两个索引?
我正在创建带有ltree列的表,我想知道应该在我的列或gist上同时创建两个索引(btree和gist)吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。