MySQL

3 篇内容

工程实践TiDB 社区博客 - 实践案例

稳住大考阅卷高并发!学科网数据库架构的平滑演进与实践

文章复盘学科网阅卷系统从 MySQL 迁移到 TiDB 的实践,背景是业务具有峰谷特征、单机 MySQL 主备集群出现容量与性能瓶颈,同时研发资源有限无法改造代码。作者详细说明选型 TiDB 的关键理由:高度兼容 MySQL 实现零代码迁移、在线 DDL 不阻塞业务、弹性扩缩容适配流量波动、Raft 多副本保证数据强一致。迁移采用分批策略,优先将大表和主从延迟严重的表迁入,收益包括缓解并发压力、消除切换数据不一致风险、节省磁盘空间并避免分库分表改造。文中还总结了扩容规划、小表热点处理、低峰版本升级和索引优化等运维经验。该方案尤其适合教育行业等需要兼容 MySQL 且短时高并发的场景,但需注意跨 AZ 缩容的数据分布和热点小表的处理。

推荐收录,因为文章提供了真实业务约束下的数据库选型、迁移和运维全过程,包含零代码改造、在线 DDL、强一致、扩容规划、小表热点等具体细节,不是泛泛的技术宣传。适合数据库架构师、SRE 以及教育行业技术负责人参考,其“先兼容迁移、争取时间”的平滑演进思路可迁移到其他受限于 MySQL 单机瓶颈且短期无法大改代码的团队。

工程实践PlanetScale Blog

Concurrency vs. Throughput: why more parallelism can make databases slower

文章复盘了一次 MySQL 生产事故:一个长事务导致 InnoDB 版本历史膨胀,使读查询成本随并发量平方级增长,最终拖垮数据库。作者运用 Gunther 通用可伸缩性定律解析了争用系数 α 与一致性开销系数 β,阐明为何超过临界并发数后吞吐量反而下降。解决方案是将 Vitess 事务池从一万降低到约一千并引入排队,模拟原有线程池的反压行为,从而避免大量并发请求涌入存储引擎。配置变更后,系统在类似流量尖峰下吞吐稳定、无报错,MySQL 内部并发数控制在两百以内。文章强调此策略适用于悲观锁、热点行等高争用场景,且思路可迁移至 Postgres 等系统。

推荐收录,因为文章通过真实事故展示了并发与吞吐的逆向关系,并用通用可伸缩性定律提供量化分析。对负责高并发数据库、稳定性工程及反压机制设计的读者具有直接参考价值,可迁移到类似数据库和分布式系统中。文中提供的实验数据和配置对比使其结论可信,且明确给出了适用边界。

技术文章PlanetScale Blog

Working with Geospatial Features in MySQL

这篇文章系统介绍了如何在 MySQL 中表示和处理地理空间数据,先区分了实体、空间两类地理对象,再说明 POINT、LINESTRING、POLYGON 及其多几何类型在表中的存储方式。作者进一步解释了 WKT、WKB 和 MySQL 内部格式的区别,以及 SRID 如何决定坐标系和计算语义。文中给出了创建带 SRID 4326 的空间列、添加 SPATIAL KEY 的建表示例,并演示了距离、面积、包含、相交、缓冲、并集和差集等常用空间函数。最后比较了 MySQL 8 与 5.7 在 SRS 感知和空间索引上的改进,指出旧版本常在平面坐标和最小外接矩形上计算,精度和可用性都受限。整体适合作为入门到实操的参考,但示例主要覆盖基础用法,复杂 GIS 场景仍需结合具体投影与数据分布验证。

文章直接给出了 MySQL 空间数据类型、SRID、空间索引和常用函数的示例,证据充分,适合需要在数据库中存取地理位置、做邻近查询或范围分析的开发者。它的可迁移价值在于把“如何建表、如何查询、MySQL 8 为什么更准确”讲清楚;主要限制是停留在基础教程层面,复杂投影和大规模 GIS 负载还需进一步验证。