V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ayogo
V2EX  ›  PostgreSQL

Citus 的查询效率相比单机而言提升了多少

  •  
  •   ayogo · 2022-10-24 23:38:08 +08:00 via Android · 1445 次点击
    这是一个创建于 748 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,题主面对一个 1 主 6 从的 citus 集群,每个节点有 8 个分片,配置是 32 核 96GB



    目前有几张大表的分片表的数据量都已经达到了一亿行左右(其中一张大表已经到了 44 亿)



    现在的查询效率很低,看了下查询字段内容不同的相似查询语句在从 citus 主节点入口查询时候效率远远低于从 worker 节点的查询效率,不知道有没有大佬能给小弟讲一讲 citus 究竟对增查改删有多大影响,等数据查询等到了半夜(/_\)



    来自于一个卑微的加班到半夜的数据处理者
    3 条回复    2022-10-25 13:22:56 +08:00
    Aoang
        1
    Aoang  
       2022-10-25 08:53:19 +08:00 via iPhone
    Citus 和 PostgreSQL 版本呢?也不说出来。

    Citus 新版,每个节点都可以作为查询入口,主节点一主多从的架构是得跟着变一变的。

    Citus 的查询其实很简单。例如,有一张用户表,根据名字进行拆分的。现在,我们需要查询 2000 年出生的用户。

    Citus 会执行什么操作?
    它会读取元数据,获取分片节点,然后去所有可能存在数据的分片节点上进行查询,全部查询完毕之后,它再把数据拼起来,返回。

    Citus 查询耗时比去单个分片节点查询耗时高的不成正比,打个查询计划看看。多半是,数据库表设计和 Citus 水土不服。

    如果不是表设计的问题,或者是分片的问题。可以选择给分片节点加只读节点。堆机器 Citus 还是很擅长的。
    ayogo
        2
    ayogo  
    OP
       2022-10-25 08:56:58 +08:00 via Android
    @Aoang pg 应该是 14.5 ,citus 应该也是最新的版本。谢谢大佬,我今天去好好看看
    wenerme
        3
    wenerme  
       2022-10-25 13:22:56 +08:00
    只要不做必须走调度节点的操作(聚合什么的),查询都带分片,那性能基本是线性增长的,当然,前提是 分片合理(每个节点差不多),要是所有查询都走到一个节点,那性能增加 0 。

    可以把 citus 看作更高级的 kv db ,在 key 确定的前提下,value 是个可以用 sql 查询的 db ,就好比 多个 sqlite 文件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   899 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:42 · PVG 04:42 · LAX 12:42 · JFK 15:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.