时序数据有专门的数据库,通用数据库扛不住

监控指标收集系统的数据库选型,这是系统设计面试的经典问题 👇
📌 数据访问模式
- 写负载很重:每天数百万运维指标,高频采集
- 读负载有突发性:可视化和告警服务的查询量不稳定
📌 为什么不用MySQL?
- 关系型数据库没有针对时序数据优化
- 滑动窗口计算移动平均值需要复杂SQL
- 标签/标记需要为每个标签建索引
- 持续高写入负载下性能不佳
📌 为什么不用NoSQL?
- Cassandra、Bigtable理论上可以,但需要深入了解内部机制才能设计出可扩展的schema
- 有现成的时序数据库,没必要折腾
📌 正确选择:时序数据库(TSDB)
- InfluxDB、TimescaleDB、Prometheus等
- 专门为时序数据优化,写入快、查询高效
💡 选数据库要看数据特征和访问模式,不要用通用数据库硬扛专业场景。
#数据库 #监控 #时序数据库 #系统设计 #程序员 #后端开发 #技术干货