背景
一个服务500case:查下来,是下游数据库连接数打满,导致数据库报错。
db连接数打满问题
当db连接数达到上限,就没法再建立新的连接了。
我们需要考虑在平时如何避免连接数打满。
如何解决或者避免
1.如果数据库服务器硬件资源允许,可以尝试增加数据库连接数的上限。可联系DBA通过修改数据库的配置调整。
2.平时在开发时,要注意确保在使用完db后,及时释放连接。
3.考虑使用连接池来管理数据库连接,复用连接对象减少连接的创建和销毁开销。
连接池:通过预先创建一组数据库连接,并将其保存在内存中,应用程序从连接池中获取连接,使用完毕后放会连接池。
4.sql优化:是否有慢查询,确保使用合适的索引和优化策略。
慢查询:指执行时间较长的查询语句。当查询语句需要消耗大量的系统资源或需要访问大量数据时,执行时间会限制延长,导致数据库性能下降。
下篇文章详细写下慢查询。
5.尽量缩短事务的执行时间,避免长时间占用连接资源。
6.水平扩展数据库:用数据库集群或者分布式数据库。通过将数据分片存储在多个节点上,增加数据库的处理能力和连接容量。