1
Aoang 2022-10-25 08:53:19 +08:00 via iPhone
Citus 和 PostgreSQL 版本呢?也不说出来。
Citus 新版,每个节点都可以作为查询入口,主节点一主多从的架构是得跟着变一变的。 Citus 的查询其实很简单。例如,有一张用户表,根据名字进行拆分的。现在,我们需要查询 2000 年出生的用户。 Citus 会执行什么操作? 它会读取元数据,获取分片节点,然后去所有可能存在数据的分片节点上进行查询,全部查询完毕之后,它再把数据拼起来,返回。 Citus 查询耗时比去单个分片节点查询耗时高的不成正比,打个查询计划看看。多半是,数据库表设计和 Citus 水土不服。 如果不是表设计的问题,或者是分片的问题。可以选择给分片节点加只读节点。堆机器 Citus 还是很擅长的。 |
3
wenerme 2022-10-25 13:22:56 +08:00
只要不做必须走调度节点的操作(聚合什么的),查询都带分片,那性能基本是线性增长的,当然,前提是 分片合理(每个节点差不多),要是所有查询都走到一个节点,那性能增加 0 。
可以把 citus 看作更高级的 kv db ,在 key 确定的前提下,value 是个可以用 sql 查询的 db ,就好比 多个 sqlite 文件。 |