数据库演进史(八):PostgreSQL——一个数据库的文艺复兴
回顾这个系列: 关系型数据库解决了数据一致性 NoSQL 解决了扩展性和灵活性 嵌入式数据库解决了零部署需求 分布式数据库解决了单机瓶颈 分析型数据库解决了海量数据分析 时序数据库解决了时间序列场景 向量数据库解决了语义搜索 每个问题都催生出新的数据库类型。而 PostgreSQL 选择了一条不同的路:成为一个可以被无限扩展的平台。 ...
回顾这个系列: 关系型数据库解决了数据一致性 NoSQL 解决了扩展性和灵活性 嵌入式数据库解决了零部署需求 分布式数据库解决了单机瓶颈 分析型数据库解决了海量数据分析 时序数据库解决了时间序列场景 向量数据库解决了语义搜索 每个问题都催生出新的数据库类型。而 PostgreSQL 选择了一条不同的路:成为一个可以被无限扩展的平台。 ...
“找出所有与这张图片相似的商品。” “搜索语义上相关的文档,而不只是关键词匹配。” “推荐用户可能喜欢的内容。” 这些需求有什么共同点?它们都需要找**“相似”而不是“相等”**的数据。传统数据库在这里彻底无能为力了。 ...
你的服务器每秒产生上千条监控指标。用户行为日志像瀑布一样涌入。IoT 设备 7×24 小时不停地汇报传感器数据。 传统数据库处理这些数据时,已经开始喘不过气了。 ...
老板说:“给我一个报表,统计过去一年每个渠道的用户增长趋势。” 你写了一个 SQL,跑了 10 分钟还没出结果。PostgreSQL 表示很委屈——这不是它擅长的事。 有些查询,需要专门的数据库。 ...
前情回顾 前两篇我们看到了数据库世界的两极: 关系型:ACID 事务、SQL 标准、但单机天花板 NoSQL:无限扩展、灵活 Schema、但牺牲一致性 这像是一个权衡三角(注意:这不是 CAP 定理,CAP 讨论的是分布式系统中一致性/可用性/分区容错的取舍): 一致性(C) /\ / \ / \ /______\ 可扩展性(S) 可用性(A) 传统关系型:优先 C 和 A,牺牲 S(单机架构) 传统 NoSQL:优先 S 和 A,牺牲 C(最终一致性) 2012 年,Google 发表了 Spanner 论文,证明了一个惊人的事实: 三者可以兼顾——代价是巨大的工程复杂度。 ...
问一个问题:世界上部署量最大的数据库是什么? 不是 MySQL,不是 PostgreSQL,不是 Oracle。 答案是 SQLite——一个你可能从未直接使用过,但每天都在间接使用的数据库。 ...
前情回顾 上一篇我们看到了关系型数据库的辉煌与局限: 优点:ACID 事务、SQL 标准、数据一致性 问题:单机天花板、水平扩展困难、Schema 僵化 当 Facebook 有 5 亿用户、Google 每天处理 200 亿网页时,他们面临一个选择: 要么花天价买超级计算机,要么——重新发明数据库。 他们选择了后者。 ...
1970 年,IBM 研究员 Edgar F. Codd 发表了一篇论文:《A Relational Model of Data for Large Shared Data Banks》。 这篇论文没有写任何代码,却定义了接下来 50 年数据库的基本形态。 为什么一个 50 年前的模型,至今仍是主流? ...