数据库瓶颈
发布: (2026年4月22日 GMT+8 18:50)
2 分钟阅读
原文: Dev.to
Source: Dev.to
“它很快……直到用户出现。”
这就是我在帮朋友调试系统时对他说的话。
问题
每个请求都依赖数据库。每当用户进行任何操作时:
- 获取数据
- 更新记录
- 检查余额
在小规模时这并不会出现问题。但在大规模时,每个请求开始争夺同一资源,使数据库成为瓶颈:
- 读取过多
- 写入过多
- 并发查询过多
而且不同于你的应用服务器,数据库无法无限扩展。
为什么这很危险
系统仍然可以运行,但用户会开始体验到:
- 响应变慢
- 延迟增加
- 超时
随着用户基数的增长,性能会进一步下降。
解决方案
你并不是要去掉数据库,而是要减少对它的依赖。真实系统通过以下方式实现:
- 缓存经常读取的数据
- 为大量读取使用只读副本
- 优化查询和索引
- 将繁重任务移到后台作业
目标很简单:除非必须,否则不要访问数据库。
思维模型
把数据库想象成唯一的收银员。起初没有排队。随着更多人到来,大家都只能等——即使收银员工作得很顺畅。
教训
你的系统变慢并不是因为它坏了,而是因为所有东西都依赖于同一个部件。
收获
可扩展的系统不仅能处理更多用户——它们还能减轻对最关键组件的压力。