`

mysql合理配置连接池数量

    博客分类:
  • db
阅读更多
http://www.th7.cn/db/mysql/201509/122948.shtml





mysql合理配置连接池数量

数据库连接池最小连接数和最大连接数:
最小连接数是连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉。
MySQL默认的最大连接数为100,MySQL服务器允许的最大连接数16384
查看当前数据库的参数信息可用:mysql>show variables;
mysql> show variables like 'max_connections';
这台MySQL服务器最大连接数是650,然后查询一下服务器响应的最大连接数:
mysql> show global status like 'Max_used_connections';
MySQL服务器最大连接数是650,没有达到服务器连接数上限650,应该不会出现oo many connections(1040)错误,比较理想的设置是:
Max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接上限就设置得过高了。



2015-09-25 19:48:08来源:CSDN作者:XingKong22star474人点击
我们经常会遇见“MySQL: ERROR 1040: Too many connections”的情况,一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读写压力,另外一种情况是MySQL配置文件中max_connections值过小。

数据库连接池最小连接数和最大连接数:

最小连接数是连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉。



MySQL默认的最大连接数为100,MySQL服务器允许的最大连接数16384

最大连接数是连接池能申请的最大连接数。如果数据连接请求超过此数,后面的数据连接请求将被加入到等待队列中,这会影响之后的数据库操作。如果最小连接数与最大连接数相差太大,那么,最先的连接请求将会获利,之后超过最小连接数量的连
接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。





MySQL服务器的连接数并不是要达到最大的100%为好,还是要具体问题具体分析

查看当前数据库的参数信息可用:mysql>show variables;


mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 650 |
+-----------------+-------+
这台MySQL服务器最大连接数是650,然后查询一下服务器响应的最大连接数:
mysql> show global status like 'Max_used_connections';
MySQL服务器最大连接数是650,没有达到服务器连接数上限650,应该不会出现oo many connections(1040)错误,比较理想的设置是:
Max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接上限就设置得过高了。



从以下几种方法都可以实现修改连接数的目的。
1. 进入到mysql的安装目录找到mysqld_safe(我的安装路径是:cd /opt/mysql-5.6/bin/mysqld_safe);
   vim mysqld_safe
   找到
then $NOHUP_NICENESS $ledir/$MYSQLD
  $defaults --basedir=$MY_BASEDIR_VERSION
  --datadir=$DATADIR $USER_OPTION
  --pid-file=$pid_file
  --skip-external-locking
  -O max_connections=650
  >> $err_log 2>&1 else
  eval "$NOHUP_NICENESS $ledir/$MYSQLD
  $defaults --basedir=$MY_BASEDIR_VERSION
  --datadir=$DATADIR $USER_OPTION
  --pid-file=$pid_file
  --skip-external-locking $args
  -O max_connections=650>>
  $err_log 2>&1"
红色行代表要添加的字段。保存,退出。
重启mysql服务,即可。
查看当前数据库的参数信息可用:mysql>show variables;


2. 相对来说比较简单,直接更改mysql的配置文件my.cnf找到max_connections将默认值改为你需要的值,保存退出,重启服务即可。


3.命令行方式更改最大连接数:以管理员身份登录到数据库: 
  mysql>set GLOBAL max_connections=650
  显示当前运行的Query:mysql> show processlist
  显示当前状态:mysql> show status





对于并发较大的系统,建立一次连接然后缓存起来连续使用,直到程序结束等情况下再释放连接,就能够将系统资源集中在对数据库操作的处理上,从而大大提高性能。通常情况下将数据连接的建立和断开委托给一种能够数据库连接池的组件或服务进行管理。而DBCP, C3p0, Proxool等都是常用的开源的连接池组件。

在修改最大连接数的时候会有这样一个疑问—这个值是不是越大越好,或者设置为多大才合适?这个参数的大小要综合很多因素来考虑,比如使用的平台所支持的线程库数量、服务器的配置(特别是内存大小)、每个连接占用资源(内存和负载)的多少、系统需要的响应时间等。可以在global或session范围内修改这个参数。连接数的增加会带来很多连锁反应,需要在实际中避免由此引发的负面影响。


MySQL为每个连接分配线程来处理,可以通过threads_connected参数查看当前分配的线程数量:
mysql> show status like '%thread%';
@

比较threads_connected参数和前面提到的max_connections参数,也可以作为目前的系统负载的参照,决定是否需要修改连接数。
分享到:
评论

相关推荐

    c# mysql数据库连接池实现

    在C#编程环境中,开发人员经常需要与各种数据库进行交互,MySQL是其中之一...通过配置连接字符串、创建DbContext、设置数据库提供者以及合理使用和配置连接池,开发者可以在保证应用性能的同时,降低数据库操作的成本。

    mysql数据连接池

    使用数据连接池时,开发者需要配置连接池的相关参数,如初始化大小、最大连接数、最小连接数、超时时间等,以适应不同应用的负载需求。同时,为了保证系统的稳定性和可用性,定期对连接池进行监控和调优也至关重要。...

    配置数据库连接池

    在.NET环境中,可以使用Oracle Managed Data Access (ODP.NET, Managed Driver)配置连接池。配置步骤包括: - 添加Oracle数据提供程序到项目引用。 - 在Web.config或App.config文件中定义数据源和连接字符串。 - ...

    Tongweb5中配置JDBC连接池

    总的来说,Tongweb5中的JDBC连接池配置是一项关键的系统优化工作,通过合理的配置和使用,可以显著提升Web应用的性能和稳定性。在实践中,开发者需要根据具体的应用场景和负载情况,进行细致的调整和测试,以达到...

    Tomcat连接池的配置

    在Java Web应用中,Tomcat作为一款广泛应用的开源Servlet容器,其...通过合理配置连接池参数,可以有效管理数据库连接,避免资源浪费,提升系统整体性能。同时,持续监控和优化连接池设置是保持系统高效运行的关键。

    连接mysql和oracle的连接池包

    在一个应用中同时连接MySQL和Oracle,需要为每个数据库配置独立的连接池实例,分别管理MySQL和Oracle的连接。通过编程逻辑选择合适的连接池来获取数据库连接,进行数据操作。 7. **性能优化**: 连接池的大小、...

    连接池案例 连接池案例

    在IT行业中,数据库连接池是优化数据库访问性能和资源管理的重要技术。连接池的基本思想是重用已建立的数据库连接,避免频繁创建和销毁连接带来的性能...理解并正确配置连接池,对于提升应用性能和稳定性具有关键作用。

    JDBC数据源连接池的配置和使用示例

    **JDBC数据源连接池配置与使用详解** ...通过选择合适的连接池,配置合理的参数,以及有效利用监控工具,可以大大提高应用的性能和稳定性。在实际项目中,应根据具体需求选择合适的数据源,并持续优化以达到最佳效果。

    C3P0连接池配置

    **C3P0连接池配置详解** ...总结来说,C3P0连接池的配置涉及到多个参数,合理的配置能够有效地管理数据库连接,提高应用的性能和稳定性。在实践中,应根据具体应用场景进行调整,以达到最佳的连接池效率和资源利用率。

    spring连接池配置

    ### Spring框架中C3P0连接池配置详解 在Java Web开发中,数据库连接管理是一项重要的任务。不当的连接管理可能会导致性能问题甚至系统崩溃。Spring框架提供了多种配置数据库连接池的方式,其中C3P0是一种广泛使用的...

    几种数据库连接池详细配置

    合理设置这些参数,可以有效提升系统的性能和稳定性,特别是在高并发环境下,正确配置连接池参数对于避免资源浪费和提高系统响应速度至关重要。开发者应根据实际应用需求和数据库特性,灵活调整这些配置,以达到最佳...

    mysqlproxool连接池

    - 配置连接池参数:设置如driver、url、username、password以及Proxool特有的配置,如poolName、maxSize等。 - 链接测试:确保配置正确后,进行链接测试,验证是否能成功连接到数据库。 4. **编程使用**: 使用...

    tomcat连接池配置

    在Java Web开发中,Tomcat作为一款广泛应用的开源Servlet容器,其性能...正确配置连接池参数,结合实际运行情况持续优化,可以有效减少数据库访问延迟,提高系统响应速度,同时节约资源,确保服务的稳定性和可靠性。

    数据库连接池的配置 完整版

    通过以上介绍,我们可以看到,配置数据库连接池涉及到多个方面,从选择合适的连接池实现到设置合理的参数,每个环节都对系统的稳定性和性能有直接影响。遵循说明文档,结合配置文件xxx.xml,相信你可以顺利地完成...

    jdbc连接池配置(优化连接速度)

    1. **初始化阶段**:连接池在启动时会根据配置预先创建一定数量的数据库连接,这些连接处于空闲状态。 2. **申请连接**:当应用需要访问数据库时,不再直接创建新的连接,而是向连接池申请一个连接。如果连接池中有...

    数据库连接池 jar包

    数据库连接池是数据库管理中的重要组成部分,它在Java应用程序中起着至关重要的作用。这里的"数据库连接池 jar包"指的是用于...通过合理配置和管理连接池,我们可以确保数据库连接的高效利用,同时保证应用的稳定运行。

    j2ee开发连接池的配置

    在J2EE(Java 2 Platform, Enterprise Edition)开发中,连接池是至关重要的一个组件,它优化了数据库连接的管理,...在实际项目中,选择合适的连接池并进行合理配置,对于提升系统的运行效率和资源利用率至关重要。

    proxool连接池配置详解

    - **说明**:指定连接池中最少需要保持的活跃连接数量。 - **配置细节**:为了保证服务的连续性和响应速度,即使没有连接请求也应维持一定数量的连接。 - **示例配置**: ```properties minimum-connection-...

Global site tag (gtag.js) - Google Analytics