数据库瓶颈

发布: (2026年4月22日 GMT+8 18:50)
2 分钟阅读
原文: Dev.to

Source: Dev.to

“它很快……直到用户出现。”
这就是我在帮朋友调试系统时对他说的话。

问题

每个请求都依赖数据库。每当用户进行任何操作时:

  • 获取数据
  • 更新记录
  • 检查余额

在小规模时这并不会出现问题。但在大规模时,每个请求开始争夺同一资源,使数据库成为瓶颈:

  • 读取过多
  • 写入过多
  • 并发查询过多

而且不同于你的应用服务器,数据库无法无限扩展。

为什么这很危险

系统仍然可以运行,但用户会开始体验到:

  • 响应变慢
  • 延迟增加
  • 超时

随着用户基数的增长,性能会进一步下降。

解决方案

你并不是要去掉数据库,而是要减少对它的依赖。真实系统通过以下方式实现:

  • 缓存经常读取的数据
  • 为大量读取使用只读副本
  • 优化查询和索引
  • 将繁重任务移到后台作业

目标很简单:除非必须,否则不要访问数据库。

思维模型

把数据库想象成唯一的收银员。起初没有排队。随着更多人到来,大家都只能等——即使收银员工作得很顺畅。

教训

你的系统变慢并不是因为它坏了,而是因为所有东西都依赖于同一个部件。

收获

可扩展的系统不仅能处理更多用户——它们还能减轻对最关键组件的压力。

0 浏览
Back to Blog

相关文章

阅读更多 »

SQL 中的子查询和 CTE

在使用 SQL 时,你最终会遇到单个查询不足以解决问题的情况。你需要将问题拆分为多个部分,计算中间结果……

mdka v2 发布

发布 我们已经发布了 mdka 的 v2 版本(https://github.com/nabbisen/mdka-rs),这是一款基于 Rust 的 HTML 转 Markdown 转换器。最初它是作为 o… 的核心组件开发的。