数据库优化之连接优化
Posted 蔬菜的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库优化之连接优化相关的知识,希望对你有一定的参考价值。
提及数据库,数据的查询优化是个非常常见问题,那么该怎么答好数据库优化这个问题呢?
首先我们要明白,数据库查询的一个执行流程,如下图所示。
客户端在查询服务器缓存之前,首先会和服务器端进行一个连接, 本文就该连接的优化进行一个介绍。
一、考虑服务器端
设置最大连接数。有时候出现 Too many connections 错误,一个是因为并发太大,另一个原因就是最大连接数设置过小。比较理想的情况是: 服务器响应的最大连接数大于设置的最大连接数的10%。
设置服务端线程池数目:服务端5.6之后,服务端不在是一个请求开启一个线程来进行处理,而是共用线程池中的线程进行所有请求的处理,避免开启线程的消耗。 推荐线程池的线程数目为:2*CPU核数+1。
二、考虑客户端
客户端采用线程池。客户端采用线程池的一个好处就是不用每个请求开启一个连接,这样减少连接数,降低服务端的压力。
目前dubbo 和druid都是采用的线程池。当然线程池数目可以根据自己的业务量的大小进行一个合理的设置。
以上是关于数据库优化之连接优化的主要内容,如果未能解决你的问题,请参考以下文章