gpt4 book ai didi

database - 为什么从 Elasticsearch 检索数据比从 PostgreSQL 检索数据快得多?

转载 作者:搜寻专家 更新时间:2023-10-30 23:05:48 26 4
gpt4 key购买 nike

使用时间戳字段“created”上的数据库索引执行以下简单数据库查找比在 Elasticsearch 索引(保存相同数据)上执行相同查找花费的时间长 10 倍:

SELECT * FROM "my_table" ORDER BY "created" DESC LIMIT 1000 OFFSET 200000

此查询中没有过滤器,也没有文本搜索 - 这是一个具有高偏移量 的简单查找。使用较低的偏移量可以为 PostgreSQL 和 Elasticsearch 产生同样快的结果。偏移量越大,时间差越大。即使不对结果进行排序,使用大偏移量也比使用 ES 花费的时间长得多。

这是正常现象还是 PostgreSQL 中的选项设置不正确?总的来说,该数据库性能非常好,用于高流量网站。

最佳答案

偏移量越大,服务器需要计算的行越多,因此使用的偏移量越大,查询效率就越低。

Postgres doc对于 limit/offset警告:

The rows skipped by an OFFSET clause still have to be computed inside the server; therefore a large OFFSET might be inefficient.

小型 OFFSET 的查询计划是什么样的?还是大的?

根据具体用途——假设您在服务器上进行后端工作——您可以使用游标而不是执行一系列 SELECTLIMITOFFSET ,尽管对于面向用户的事物和其他无状态连接场景——即分页——这可能不是一个选择。

关于database - 为什么从 Elasticsearch 检索数据比从 PostgreSQL 检索数据快得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26680420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com