想请教大家一个 SQL 大表的问题。
需求为: 使用 SQL 存储大约 12 亿的 time series 数据, ttl 为 30 天。Schema 为 (group_id, sub_group_id, timestamp, value)
。
绝大多数查询是做一些 aggregation , 比如 sum(value) group by sub_group_id
。所有查询保证都在同一 group id
内。
我能想到的一些做法:
group_id
分成多个 server。timestamp
(以天为单位), group_id
分表。这样可以按天 drop table 来删除过期数据。(group_id, sub_group_id, timestamp)
创建 index。问题:
使用分表会降低 performance 吗?(从我的 test 结果看好像是的。)
MySQL or PostgreSQL?
PostgreSQL 的好处是:
MySQL 好处:
问题很多,先感谢大家的宝贵时间!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.