数据库优化之连接优化

Posted 蔬菜的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库优化之连接优化相关的知识,希望对你有一定的参考价值。

提及数据库,数据的查询优化是个非常常见问题,那么该怎么答好数据库优化这个问题呢?

首先我们要明白,数据库查询的一个执行流程,如下图所示。

客户端在查询服务器缓存之前,首先会和服务器端进行一个连接, 本文就该连接的优化进行一个介绍。

一、考虑服务器端

     设置最大连接数。有时候出现 Too many connections 错误,一个是因为并发太大,另一个原因就是最大连接数设置过小。比较理想的情况是: 服务器响应的最大连接数大于设置的最大连接数的10%。

    设置服务端线程池数目:服务端5.6之后,服务端不在是一个请求开启一个线程来进行处理,而是共用线程池中的线程进行所有请求的处理,避免开启线程的消耗。 推荐线程池的线程数目为:2*CPU核数+1。


二、考虑客户端

    客户端采用线程池。客户端采用线程池的一个好处就是不用每个请求开启一个连接,这样减少连接数,降低服务端的压力。

    目前dubbo 和druid都是采用的线程池。当然线程池数目可以根据自己的业务量的大小进行一个合理的设置。

以上是关于数据库优化之连接优化的主要内容,如果未能解决你的问题,请参考以下文章

mybatis性能优化之降低数据库连接

数据库优化之SQL语句优化-记录

关系查询处理和关系优化-第三节:查询优化之代数优化

SQL优化之百万数据查询优化

MySQL 之数据库优化

MySQL 之数据库优化