首页
All Posts

数据库选型那些坑

关系型、文档型、时序型、向量型……到底怎么选?选错了代价有多大?

数据库选型是一个”事后看来显而易见,当时却很难做对”的决策。

最常见的错误:用锤子看什么都是钉子

大多数团队只熟悉一两种数据库,于是什么场景都往里面套。

PostgreSQL 很优秀,但我见过有人用它存时序监控数据,查询慢到崩溃;MongoDB 很灵活,但我见过有人用它做复杂的多表关联查询,代码写得比 SQL 更难维护;Redis 很快,但我见过有人把它当主数据库,掉电之后数据消失一半。

选型的核心维度

数据结构。你的数据天然是关系型(有外键、需要 join)、文档型(嵌套结构、schema 灵活)、还是键值型(简单查找)?从数据结构出发,可以排除大半错误选项。

查询模式。写多读少还是读多写少?点查还是范围查?全文搜索还是向量相似度?查询模式决定了索引设计,也决定了数据库类型。

一致性需求。需要强一致性吗?能接受最终一致性吗?分布式场景下的 CAP 权衡必须提前想清楚。

规模预期。当前规模和未来一两年的规模。不要为十年后的规模做设计,但也不要为明天就会到来的增长选一个完全撑不住的方案。

一个实用建议

先用 PostgreSQL。它能处理 90% 的场景,有出色的 JSON 支持、全文搜索扩展、时序扩展……等到真的遇到它解决不了的问题,再考虑引入专用数据库。

技术选型的本质是管理复杂度。每增加一种数据库,运维复杂度就上一个台阶。