面向有经验的后端/数据/平台工程师。本文不堆术语,只讲清楚三类数据库各自擅长什么、在什么场景下会踩坑,以及真实业务里怎么组合使用。原理部分点到为止,深入链接放在文末。数据库选型这件事,八成的争论其实源于一个误会:把"存储模型"当成了"产品好坏"来比。行式、列式、向量,本质是三种不同的数据组织方式,各自为一类访问模式做了极致优化。选错的代价不是"慢一点",而是整个架构跑偏。下面按"它怎么存 →...
背景最近做了一次 MySQL 8.0 的小版本升级,升级完重启之后业务侧开始报连接异常,日志里出现了一些奇怪的 warning。表面看不致命,但实际有部分客户端被 MySQL 直接拉黑了连不上。最后 DBA 排查出来是 max_connect_errors 这个参数默认值太小导致的,改大之后问题消失。记录一下整个过程,避免下次再踩。现象升级重启之后,错误日志里陆续出现这类 warning:[...
事务隔离级别是数据库并发控制的核心概念,直接影响系统的数据一致性与并发性能。SQL 标准(SQL-92)定义了四种隔离级别,但 PostgreSQL 和 MySQL(InnoDB)在实现细节上存在显著差异,理解这些差异是写出正确、高效 SQL 的关键。一、并发问题:为什么需要隔离级别?在多事务并发执行时,可能出现以下四类问题:1. 脏读(Dirty Read)事务 A 读取了事务 B 尚未提...
MySQL 8.0 升级至 8.4,属于小版本跨越,但 8.4 是一个 LTS 版本,做了若干破坏性变更。结合 PHP 7.3 + Swoole 4.3 的实际情况,整理出以下兼容性问题和对应处理方案。影响概览问题严重程度影响范围mysql_native_password 插件被移除🔴 高连接直接失败Swoole 连接池持久连接行为异常🔴 高协程环境下连接错乱ONLY_FULL_GROUP_...
关键词:Swoole、mysqli、MySQL、errno=110、send of 5 bytes failed、连接复用、死连接在 PHP-FPM 时代,mysqli 几乎不会暴露什么“连接管理问题”。但一旦进入 Swoole / 常驻进程 / RPC 服务,很多团队会突然遇到类似这样的错误:send of 5 bytes failed with errno=110 Connection ...