跳转到主要内容

数据库老司机

冯若航 @Vonng / Pigsty

关于数据库行业的动态、新闻、调查、理念与最佳实践 —— 拨云见日,直击行业本质。

数据库老司机
Catalog Bullshit:把数据库拆开,再租给你一张 PostgreSQL 表PostgreSQLOLAP对象存储技术评论
AWS 收购 DuckDB:鸭子飞进亚马逊雨林DuckDBAWS数据库开源
苹果没开发布会,直接上线了 512 GB 的 Mac StudioAppleMac Studio本地 AI
Omarchy:桌面 Linux 发行版有救了吗?LinuxOmarchy操作系统
是 Oracle 的失误让 PostgreSQL 赢了吗?PostgreSQL开源社区治理云计算
SOW:论母猪的产后护理PostgreSQLPigsty软件仓库
OINK:文档框架这件事,折腾了六年,终于靠 Codex 毕业了Codex文档开源
上游没有的 Bug,为什么会出现在官方包里?RedisLinux软件仓库开源
Silo 发布:兼容 S3/MinIO 的开源对象存储对象存储开源
一个词是怎么死的数据库开源技术评论
MinIO 发布10分安全漏洞安全对象存储商业
MySQL 9.7:还是那碗冷饭MySQLPostgreSQL数据库技术评论
续命 MinIO:承诺兑现对象存储安全开源
把 Agent 的状态放进数据库PostgreSQLAIAgentPigsty
360安全龙虾,把自己的泛域名私钥打进了安装包AIAgent安全
一场辩论之后,认真聊聊“本体论”OLAP数据主权哲学技术评论
InsForge:为 Vibe Coding 而生的 SupabaseAIPostgreSQL开源
两小时复活 MinIO,然后网站炸了对象存储开源随笔
Palantir 的“本体论”骗局数据库哲学技术评论
重新设计数据密集型应用数据库翻译
DDIA 第二版翻完了:一个跨越八年的 AI 寓言分布式系统数据库翻译
MinIO 已死,MinIO 复生对象存储开源
DuckDB 开发者大会四连击:扩展,加密,存储过程,边缘分析OLAP扩展随笔
深入解析:元旦当天华为高斯数据库BUG,搞摊中国银行APP国产数据库PostgreSQL故障复盘
国产数据库:我已经过了痛心疾首的阶段国产数据库技术评论
Andy Pavlo:2025 数据库世界年度总结PostgreSQL数据库
2025 年度数据库世界总结:石破天 vs Andy Pavlo 对谈录PostgreSQL数据库PG生态
Agent 需要什么样的数据库?PostgreSQLAIAgent数据库
MySQL与白酒:互联网行业的服从测试MySQL数据库技术评论职业
Victoria:吊打业界的可观测性全家桶来了监控
MinIO已死,谁能接盘?对象存储数据库开源
MinIO已死对象存储数据库开源
当答案唾手可得,问题成为新货币AI哲学职业
聊聊开源软件供应链信任问题软件仓库PG管理开源
原地报废:不要在生产环境用Docker跑PostgreSQL!PostgreSQL容器化故障复盘
GPT5/Claude:国产数据库行业研究对比国产数据库大模型技术评论
DDIA第二版中文翻译分布式系统数据库翻译
专栏:数据库老司机数据库技术评论
懂车帝暴打智驾,懂库帝在哪里PostgreSQL数据库技术评论社会观察
AI时代的数据库与DBA将何去何从AI数据库PG管理职业
数据库老司机勇闯现代前端大观园软件工程随笔
别争了,AI时代数据库已经尘埃落定AIPostgreSQL数据库开源
开放数据标准:Postgres,OTel,与IcebergPostgreSQLOLAP数据库监控
小数据的失落十年:分布式分析的错付OLAP数据库分布式系统
OpenAI:将PostgreSQL伸缩至新阶段PostgreSQLCodex性能架构
不缺好数据库内核,缺能用好数据库的DBA数据库职业技术评论
数据库茶水间:OpenAI拟收购Supabase ?PostgreSQL商业随笔
这次数据库真爆炸了,但摇人也没用了数据库备份故障复盘
Etcd坑了多少公司?数据库分布式系统容器化故障复盘
影视飓风达芬奇千万级数据库演化及实践PostgreSQLPigsty数据库
数据库爆炸了怎么摇人?数据库故障复盘职业
MySQL vs PostgreSQL @ 2025MySQLPostgreSQL数据库软件工程
特大新闻, Oracle强劲对手宣布开源!OracleMySQL数据库
数据库火星撞地球:当PG爱上DuckDBPostgreSQLOLAP数据库
HTAP数据库,一场无人鼓掌的演出OLAP国产数据库数据库
国产数据库里有能打的吗?国产数据库技术评论
对比Oracle与PostgreSQL事务系统PostgreSQLOracle数据库事务
如何在数据库中直接检索PDF数据库向量扩展
数据库即业务架构PostgreSQL数据库架构PG生态
Andy Pavlo: 2024年度数据库回顾数据库翻译
使用一条 SQL 计算扑克24点PostgreSQLMySQL数据库
七周七数据库(2025年)PostgreSQLOLAP数据库翻译
你为什么不用连接池?数据库性能PG管理
中国的开源运动再次到了十字路口国产数据库LinuxPG内核
自建Supabase:创业出海的首选数据库数据库PG生态
面向未来数据库的现代硬件数据库硬件性能翻译
这么吹国产数据库,听的尴尬癌都要犯了国产数据库技术评论
MySQL还有机会赶上PostgreSQL吗?MySQLPostgreSQL数据库技术评论
开源“暴君”Linus清洗整风Linux开源技术评论
第二批数据库国测名单:国产化来了怎么办?国产数据库商业
先优化碳基BIO核,再优化硅基CPU核软件工程性能数据库翻译
MongoDB没有未来:好营销救不了烂芒果MongoDBPostgreSQL数据库PG生态
MongoDB:现在由PostgreSQL强力驱动?MongoDBPostgreSQL数据库技术评论
ElasticSearch又重新开源了???数据库开源
计算机名著《DDIA》野猪书第二版来了数据库文档翻译
如果 Oracle 都不能在 JAVA 上赚钱,基础软件不如不做Oracle软件工程成本
瑞士强制政府软件开源国产数据库开源
机场出租车恶性循环与国产数据库怪圈国产数据库技术评论
MySQL安魂九霄,PostgreSQL驶向云外MySQLPostgreSQL数据库技术评论
CVE-2024-6387 SSH漏洞修复安全Linux故障复盘
Oracle还能挽救MySQL吗?MySQLOracle数据库技术评论
Oracle最终还是杀死了MySQLMySQLOracle数据库技术评论
MySQL性能越来越差,Sakila将何去何从?MySQL数据库性能技术评论
数据库迁移工具箱,DBA老鸟的五金店OracleMySQL数据库
国产数据库到底能不能打?国产数据库数据库技术评论
20刀好兄弟PolarDB:论数据库该卖什么价?国产数据库云计算数据库
Redis不开源是“开源”之耻,更是公有云之耻Redis云计算数据库开源
国产数据库是大炼钢铁吗?国产数据库技术评论
MySQL正确性竟如此垃圾?MySQL数据库事务
没错,数据库确实应该放入 K8s 里!数据库容器化职业
数据库应该放入K8S里吗?数据库容器化架构
专用向量数据库凉了吗?AI数据库向量技术评论
数据库真被卡脖子了吗?国产数据库数据库技术评论
EL系操作系统发行版哪家强?国产数据库LinuxPG管理数据库
基础软件需要什么样的自主可控?国产数据库数据库
正本清源:技术反思录云计算数据库架构技术评论
数据库需求层次金字塔数据库架构软件工程
微服务是不是个蠢主意?云计算架构容器化技术评论
分布式数据库是不是伪需求?数据库分布式系统技术评论
开源不是大杀器,免费才是软件工程工具开源
StackOverflow 2022数据库年度调查PostgreSQL数据库PG生态
是时候和GPL说再见了本地优先开源翻译
容器化数据库是个好主意吗?数据库容器化架构
理解时间:闰年闰秒,时间与时区PG开发数据库
理解字符编码原理PG开发数据库
并发异常那些事数据库事务PG内核
区块链与分布式数据库数据库分布式系统
一致性:过载的术语数据库分布式系统事务
为什么要学习数据库原理数据库职业

数据库需求层次金字塔

冯若航 3688 字 8 分钟

与马斯洛需求金字塔类似,用户对数据库的需求也有递进的层次:功能正确性、安全备份、高可用监控、性能成本、可观测性、易用性控制、标准化产品化、最终达到超越与自我实现。

是时候和GPL说再见了

Martin Kleppmann 5699 字 12 分钟

DDIA作者Martin Kleppmann认为应远离GPL及相关许可证,因为它们未能实现其目的,造成的麻烦比产生的价值更大。在2020年代,计算自由的敌人是云软件,本文倡导本地优先软件的概念。

容器化数据库是个好主意吗?

冯若航 7640 字 16 分钟

生产环境的数据库是否应当放入容器中,仍然是一个充满争议的问题。站在开发者角度我喜欢Docker,但站在DBA立场上,我认为就目前而言,将生产环境数据库放入Docker/K8S中仍然是一个馊主意。

理解时间:闰年闰秒,时间与时区

冯若航 6444 字 13 分钟

四年一遇的闰年2月29日,总有土鳖软件出现大翻车。对时间的正确理解,对正确处理工作生活中的时间问题很有帮助。本文聊一聊闰年、闰秒、时间与时区的原理,以及在数据库与编程语言中的注意事项。

理解字符编码原理

冯若航 10394 字 21 分钟

如果不了解字符编码的基本原理,即使只是简单常规的字符串比较、排序、随机访问操作,都可能会一不小心栽进大坑中。本文详细解析ASCII、Unicode、UTF-8等编码原理,希望能讲清楚这个问题。

并发异常那些事

冯若航 11898 字 24 分钟

并发程序很难写对,更难写好。很多程序员只是把问题丢给数据库,但即使最强大的ACID数据库也会使用弱隔离级别。本文阐述SQL92标准定义的隔离级别及其缺陷,以及现代模型中的隔离级别定义。

区块链与分布式数据库

冯若航 1118 字 3 分钟

区块链的技术本质、提供的功能及演化方向就是分布式数据库。确切地讲,是拜占庭容错(抗恶意节点攻击)的分布式(无领导者复制)数据库。智能合约本质上就是这个分布式数据库上的存储过程。

一致性:过载的术语

冯若航 1558 字 4 分钟

一致性这个词重载得很厉害,在不同语境中代表着不同的东西。ACID里的C指事务一致性,CAP里的C指线性一致性,此外还有"一致性哈希"、"最终一致性"等不同涵义。本文梳理这些概念的区别。

为什么要学习数据库原理

冯若航 4240 字 9 分钟

只会写代码的是码农,学好数据库基本能混口饭吃。然而对优秀的工程师来说,只会用数据库是远远不够的。绝大多数应用都是数据密集型应用,数据库提供了对应用通用存储需求的高级抽象。

  • 数据库需求层次金字塔

    冯若航 发布于 数据库 3688 字 8 分钟

    冯若航数据库架构软件工程

    Featured Image for 数据库需求层次金字塔

    与马斯洛需求金字塔类似,用户对于数据库的需求也有着一个递进的层次。用户对于数据库的需求从下往上可以分为八个层次,分别与人的八个需求层次相对应: 生理需求,功能:内核/正确性/ACID 安全需求,安全:备份/保密/完整/可用 归属需求,可靠:高可用/监控/告警 尊重需求,ROI:性能/成本/复杂度 认知需求,洞察:可观测性/数字化/可视化 审美需求,掌控:可控制性/易用性/IaC 自我实现,智能:标准化/产品化/智能化 超越需求,变革:真·自治数据库 安全需求与生理需求同属 基础需求,一个用于生产 …

    与马斯洛需求金字塔类似,用户对于数据库的需求也有着一个递进的层次。用户对于数据库的需求从下往上可以分为八个层次,分别与人的八个需求层次相对应: 生理需求,功能:内核/正确性/ACID 安全需求,安全:备份/保密/完整/可用 归属需求,可靠:高可用/监控/告警 尊重需求,ROI:性能/成本/复杂度 认知需求,洞察:可观测性/数字化/可视化 审美需求,掌控:可控制性/易用性/IaC 自我实现,智能:标准化/产品化/智能化 超越需求,变革:真·自治数据库 安全需求与生理需求同属 基础需求,一个用于生产 …

  • 微服务是不是个蠢主意?

    David Heinemeier Hansson (DHH) 发布于 数据库 1291 字 3 分钟

    David Heinemeier Hansson (DHH)正本清源云计算架构容器化技术评论

    Featured Image for 微服务是不是个蠢主意?

    亚马逊的Prime Video团队发表了一篇非常引人注目的案例研究[2] ,讲述了他们为什么放弃了微服务与Serverless架构而改用单体架构。这一举措让他们在运营成本上节省了惊人的 90%,还简化了系统复杂度,堪称一个巨大的胜利。 但除了赞扬他们的明智之举之外,我认为这里还有一个重要洞察适用于我们整个行业: “我们最初设计的解决方案是:使用Serverless组件的分布式系统架构… 理论上这个架构可以让我们独立伸缩扩展每个服务组件。然而,我们使用某些组件的方式导致我们在大约5%的预期负载时, …

    亚马逊的Prime Video团队发表了一篇非常引人注目的案例研究[2] ,讲述了他们为什么放弃了微服务与Serverless架构而改用单体架构。这一举措让他们在运营成本上节省了惊人的 90%,还简化了系统复杂度,堪称一个巨大的胜利。 但除了赞扬他们的明智之举之外,我认为这里还有一个重要洞察适用于我们整个行业: “我们最初设计的解决方案是:使用Serverless组件的分布式系统架构… 理论上这个架构可以让我们独立伸缩扩展每个服务组件。然而,我们使用某些组件的方式导致我们在大约5%的预期负载时, …

  • 分布式数据库是不是伪需求?

    冯若航 发布于 数据库 5254 字 11 分钟

    冯若航正本清源数据库分布式系统技术评论

    Featured Image for 分布式数据库是不是伪需求?

    微信公众号原文 老冯按:最近关于分布式的讨论又开始热闹起来,比如白老师就发了一篇《分布式数据库真的是伪需求吗》。回头看看两年前写的《分布式数据库是伪需求吗?》,依然非常应景。所以在此修订重发。 随着硬件技术的进步,单机数据库的容量和性能已达到了前所未有的高度。而分布式(TP)数据库在这种变革面前极为无力,和“数据中台”一样穿着皇帝的新衣,处于自欺欺人的状态里。 太长不看\ 分布式数据库的核心权衡是:“以质换量”,牺牲功能、性能、复杂度、可靠性,换取更大的数据容量与请求吞吐量。但分久必合,硬件变 …

    微信公众号原文 老冯按:最近关于分布式的讨论又开始热闹起来,比如白老师就发了一篇《分布式数据库真的是伪需求吗》。回头看看两年前写的《分布式数据库是伪需求吗?》,依然非常应景。所以在此修订重发。 随着硬件技术的进步,单机数据库的容量和性能已达到了前所未有的高度。而分布式(TP)数据库在这种变革面前极为无力,和“数据中台”一样穿着皇帝的新衣,处于自欺欺人的状态里。 太长不看\ 分布式数据库的核心权衡是:“以质换量”,牺牲功能、性能、复杂度、可靠性,换取更大的数据容量与请求吞吐量。但分久必合,硬件变 …

  • 开源不是大杀器,免费才是

    老头头 发布于 数据库 2943 字 6 分钟

    老头头软件工程工具开源

    Featured Image for 开源不是大杀器,免费才是

    原作者:老头头 · 微信公众号转载页 本人作为一个程序员,天生对开源有好感,之前是坚定的开源拥护者,但是上次波吉的一篇文章《开源商业模式是个伪命题》引发思考,然后在一个微信群里引发广泛讨论,导致我对开源商业化的态度发生大转弯。 本文讨论的开源项目是开源软件,而不是开源的基础类库;所说的开源商业公司指的是以开源项目为核心竞争力的商业公司。开源本身当然值得被尊敬,本文从商业层面分析软件开源对开源商业公司的利弊。 每个项目几乎都会用到开源软件,但绝大部分开发者并不关心开源软件的源码,另外从公司角度来 …

    原作者:老头头 · 微信公众号转载页 本人作为一个程序员,天生对开源有好感,之前是坚定的开源拥护者,但是上次波吉的一篇文章《开源商业模式是个伪命题》引发思考,然后在一个微信群里引发广泛讨论,导致我对开源商业化的态度发生大转弯。 本文讨论的开源项目是开源软件,而不是开源的基础类库;所说的开源商业公司指的是以开源项目为核心竞争力的商业公司。开源本身当然值得被尊敬,本文从商业层面分析软件开源对开源商业公司的利弊。 每个项目几乎都会用到开源软件,但绝大部分开发者并不关心开源软件的源码,另外从公司角度来 …

  • StackOverflow 2022数据库年度调查

    冯若航 发布于 数据库 2015 字 5 分钟

    冯若航PostgreSQL数据库PG生态

    Featured Image for StackOverflow 2022数据库年度调查

    什么,PostgreSQL已经成为最流行,最先进,开发者最想学习使用的数据库了? 最近,StackOverflow公布了在5月份进行的一次开发者调研报告。其中PostgreSQL获得了三连冠: PostgreSQL成为专业开发者中最流行的数据库!超越MySQL攀升至第一! PostgreSQL成为开发者最喜爱,且最想学习的数据库,超越Redis攀升至第一! PostgreSQL成为现有其他数据库用户最感兴趣的数据库! StackOverflow是享誉全球的开发者社区,其用户调研覆盖7万名开发者 …

    什么,PostgreSQL已经成为最流行,最先进,开发者最想学习使用的数据库了? 最近,StackOverflow公布了在5月份进行的一次开发者调研报告。其中PostgreSQL获得了三连冠: PostgreSQL成为专业开发者中最流行的数据库!超越MySQL攀升至第一! PostgreSQL成为开发者最喜爱,且最想学习的数据库,超越Redis攀升至第一! PostgreSQL成为现有其他数据库用户最感兴趣的数据库! StackOverflow是享誉全球的开发者社区,其用户调研覆盖7万名开发者 …

  • 是时候和GPL说再见了

    Martin Kleppmann 发布于 数据库 5699 字 12 分钟

    Martin Kleppmann本地优先开源翻译

    Featured Image for 是时候和GPL说再见了

    原文由 Martin Kleppmann 于2021年4月14日发表,译者:Vonng。原文地址 Martin Kleppmann是《设计数据密集型应用》(a.k.a DDIA)的作者,译者 Vonng 为该书中文译者。 本文的导火索是Richard Stallman恢复原职,对于自由软件基金会(FSF)的董事会而言,这是一位充满争议的人物。我对此感到震惊,并与其他人一起呼吁将他撤职。这次事件让我重新评估了自由软件基金会在计算机领域的地位 —— 它是GNU项目(宽泛地说它属于Linux发行版的一 …

    原文由 Martin Kleppmann 于2021年4月14日发表,译者:Vonng。原文地址 Martin Kleppmann是《设计数据密集型应用》(a.k.a DDIA)的作者,译者 Vonng 为该书中文译者。 本文的导火索是Richard Stallman恢复原职,对于自由软件基金会(FSF)的董事会而言,这是一位充满争议的人物。我对此感到震惊,并与其他人一起呼吁将他撤职。这次事件让我重新评估了自由软件基金会在计算机领域的地位 —— 它是GNU项目(宽泛地说它属于Linux发行版的一 …

  • 容器化数据库是个好主意吗?

    冯若航 发布于 数据库 7640 字 16 分钟

    冯若航正本清源数据库容器化架构

    Featured Image for 容器化数据库是个好主意吗?

    前言:这篇文章是19年1月写的,四年过去了,涉及到数据库与容器的利弊权衡依然成立。这里进行细微调整后重新发出。明天我会发布一篇《数据库是否应当放入K8S中?》,那么今天就先用这篇老文来预热一下吧。 对于无状态的应用服务而言,容器是一个相当完美的开发运维解决方案。然而对于带持久状态的服务 —— 数据库来说,事情就没有那么简单了。生产环境的数据库 是否应当放入容器中,仍然是一个充满争议的问题。 站在开发者的角度上,我非常喜欢Docker,并相信容器也许是未来软件开发部署运维的标准方式。但站在DBA …

    前言:这篇文章是19年1月写的,四年过去了,涉及到数据库与容器的利弊权衡依然成立。这里进行细微调整后重新发出。明天我会发布一篇《数据库是否应当放入K8S中?》,那么今天就先用这篇老文来预热一下吧。 对于无状态的应用服务而言,容器是一个相当完美的开发运维解决方案。然而对于带持久状态的服务 —— 数据库来说,事情就没有那么简单了。生产环境的数据库 是否应当放入容器中,仍然是一个充满争议的问题。 站在开发者的角度上,我非常喜欢Docker,并相信容器也许是未来软件开发部署运维的标准方式。但站在DBA …

  • 理解时间:闰年闰秒,时间与时区

    冯若航 发布于 数据库 6444 字 13 分钟

    冯若航PG开发数据库

    Featured Image for 理解时间:闰年闰秒,时间与时区

    微信公众号原文 前几天出现了四年一遇的闰年 2月29号,每到这一天,总会有一些土鳖软件出现大翻车。这种问题如果运气不好,可能要等上四年才会暴露出来。比如今天新鲜出炉的:禾赛科技激光雷达和新西兰加油站都因为闰年Bug无法使用。 今天确实是个很应景的日子,所以重发这篇六年前写的老文。聊一聊闰年,闰秒,时间与时区的原理,以及在数据库与编程语言中的注意事项。 0x01 秒与计时 时间的单位是秒,但秒的定义并不是一成不变的。它有一个天文学定义,也有一个物理学定义。 世界时(UT1) 在最开始,秒的定义来 …

    微信公众号原文 前几天出现了四年一遇的闰年 2月29号,每到这一天,总会有一些土鳖软件出现大翻车。这种问题如果运气不好,可能要等上四年才会暴露出来。比如今天新鲜出炉的:禾赛科技激光雷达和新西兰加油站都因为闰年Bug无法使用。 今天确实是个很应景的日子,所以重发这篇六年前写的老文。聊一聊闰年,闰秒,时间与时区的原理,以及在数据库与编程语言中的注意事项。 0x01 秒与计时 时间的单位是秒,但秒的定义并不是一成不变的。它有一个天文学定义,也有一个物理学定义。 世界时(UT1) 在最开始,秒的定义来 …

  • 理解字符编码原理

    冯若航 发布于 数据库 10394 字 21 分钟

    冯若航PG开发数据库

    Featured Image for 理解字符编码原理

    程序员,是与 Code(代码/编码) 打交道的,而字符编码又是最为基础的编码。 如何 使用二进制数来表示字符,这个 字符编码 问题并没有看上去那么简单,实际上它的复杂程度远超一般人的想象:输入、比较排序与搜索、反转、换行与分词、大小写、区域设置,控制字符,组合字符与规范化,排序规则,处理不同语言中的特异需求,变长编码,字节序与BOM,Surrogate,历史兼容性,正则表达式兼容性,微妙与严重的安全问题等等等等。 如果不了解字符编码的基本原理,即使只是简单常规的字符串比较、排序、随机访问操作,都 …

    程序员,是与 Code(代码/编码) 打交道的,而字符编码又是最为基础的编码。 如何 使用二进制数来表示字符,这个 字符编码 问题并没有看上去那么简单,实际上它的复杂程度远超一般人的想象:输入、比较排序与搜索、反转、换行与分词、大小写、区域设置,控制字符,组合字符与规范化,排序规则,处理不同语言中的特异需求,变长编码,字节序与BOM,Surrogate,历史兼容性,正则表达式兼容性,微妙与严重的安全问题等等等等。 如果不了解字符编码的基本原理,即使只是简单常规的字符串比较、排序、随机访问操作,都 …

  • 并发异常那些事

    冯若航 发布于 数据库 11898 字 24 分钟

    冯若航数据库事务PG内核

    Featured Image for 并发异常那些事

    并发程序很难写对,更难写好。很多程序员也没有真正弄清楚这些问题,不过是一股脑地把这些问题丢给数据库而已。并发异常并不仅仅是一个理论问题:这些异常曾经造成过很多资金损失,耗费过大量财务审计人员的心血。但即使是最流行、最强大的关系型数据库(通常被认为是“ACID”数据库),也会使用弱隔离级别,所以它们也不一定能防止这些并发异常的发生。 比起盲目地依赖工具,我们应该对存在的并发问题的种类,以及如何防止这些问题有深入的理解。 本文将阐述SQL92标准中定义的隔离级别及其缺陷,现代模型中的隔离级别与定义这 …

    并发程序很难写对,更难写好。很多程序员也没有真正弄清楚这些问题,不过是一股脑地把这些问题丢给数据库而已。并发异常并不仅仅是一个理论问题:这些异常曾经造成过很多资金损失,耗费过大量财务审计人员的心血。但即使是最流行、最强大的关系型数据库(通常被认为是“ACID”数据库),也会使用弱隔离级别,所以它们也不一定能防止这些并发异常的发生。 比起盲目地依赖工具,我们应该对存在的并发问题的种类,以及如何防止这些问题有深入的理解。 本文将阐述SQL92标准中定义的隔离级别及其缺陷,现代模型中的隔离级别与定义这 …

  • 区块链与分布式数据库

    冯若航 发布于 数据库 1118 字 3 分钟

    冯若航数据库分布式系统

    Featured Image for 区块链与分布式数据库

    区块链的本质,想提供的功能,及其演化方向,就是分布式数据库。 确切的讲,是 拜占庭容错(抗恶意节点攻击)的分布式(无领导者复制)数据库。 如果这种分布式数据库用来存储各种币的 交易记录,这个系统就叫做所谓的“XX币”。例如以太坊就是这样一个分布式数据库,上面除了记载着各种山寨币的交易记录,还可以记载各种奇奇怪怪的内容。花一点以太币,就可以在这个分布式数据库里留下一条记录(一封信)。而所谓 智能合约 就是这个分布式数据库上的 存储过程。 从形式上看,区块链 与 预写式日志 …

    区块链的本质,想提供的功能,及其演化方向,就是分布式数据库。 确切的讲,是 拜占庭容错(抗恶意节点攻击)的分布式(无领导者复制)数据库。 如果这种分布式数据库用来存储各种币的 交易记录,这个系统就叫做所谓的“XX币”。例如以太坊就是这样一个分布式数据库,上面除了记载着各种山寨币的交易记录,还可以记载各种奇奇怪怪的内容。花一点以太币,就可以在这个分布式数据库里留下一条记录(一封信)。而所谓 智能合约 就是这个分布式数据库上的 存储过程。 从形式上看,区块链 与 预写式日志 …

  • 一致性:过载的术语

    冯若航 发布于 数据库 1558 字 4 分钟

    冯若航数据库分布式系统事务

    Featured Image for 一致性:过载的术语

    一致性 这个词重载的很厉害,在不同的语境和上下文中,它其实代表着不同的东西: 在事务的上下文中,比如ACID里的C,指的就是通常的 一致性(Consistency) 在分布式系统的上下文中,例如CAP里的C,实际指的是 线性一致性(Linearizability) 此外,“一致性哈希”,“最终一致性”这些名词里的“一致性”也有不同的涵义。 这些一致性彼此不同却又有着千丝万缕的联系,所以经常会把人绕晕。 在事务的上下文中,一致性(Consistency) 的概念是:对数据的一组特定陈述必须始终成立 …

    一致性 这个词重载的很厉害,在不同的语境和上下文中,它其实代表着不同的东西: 在事务的上下文中,比如ACID里的C,指的就是通常的 一致性(Consistency) 在分布式系统的上下文中,例如CAP里的C,实际指的是 线性一致性(Linearizability) 此外,“一致性哈希”,“最终一致性”这些名词里的“一致性”也有不同的涵义。 这些一致性彼此不同却又有着千丝万缕的联系,所以经常会把人绕晕。 在事务的上下文中,一致性(Consistency) 的概念是:对数据的一组特定陈述必须始终成立 …

  • 为什么要学习数据库原理

    冯若航 发布于 数据库 4240 字 9 分钟

    冯若航数据库职业

    Featured Image for 为什么要学习数据库原理

    我们学校开了数据库系统原理课程。但是我还是很迷茫,这几节课老师一上来就讲一堆令人头大的名词概念,我以为我们知道“如何设计构建表”,“如何mysql增删改查”就行了……那为什么还要了解关系模式的表示方法,计算,规范化……概念模型……各种模型的相互转换,为什么还要了解什么关系代数,什么笛卡尔积……这些的理论知识。我十分困惑,通过这些理论概念,该课的目的或者说该书的目的究竟是想让学生学会什么呢? 只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好 操作系统和计算机网络,就能当一个不错的 …

    我们学校开了数据库系统原理课程。但是我还是很迷茫,这几节课老师一上来就讲一堆令人头大的名词概念,我以为我们知道“如何设计构建表”,“如何mysql增删改查”就行了……那为什么还要了解关系模式的表示方法,计算,规范化……概念模型……各种模型的相互转换,为什么还要了解什么关系代数,什么笛卡尔积……这些的理论知识。我十分困惑,通过这些理论概念,该课的目的或者说该书的目的究竟是想让学生学会什么呢? 只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好 操作系统和计算机网络,就能当一个不错的 …