当前位置:首页 > Mysql教程 > 列表

快速增加MYSQL数据库连接数负载能力方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-03 21:38:25 浏览: 评论:0 

mysql数据库的负载能力除了和你机器硬件有关,还有一个重要参数就是你系统的配置有关,下面我来给大家介绍几种提高MYSQL数据库连接数负载能力方法总结,各位同学可进入参考.

第一先限制Innodb的并发处理,如果innodb_thread_concurrency = 0 可以先改成 16或是64 看机器压力,如果非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务.

处理方法:set global innodb_thread_concurrency=16;

方法一:window系统中可直接修改my.ini文件

进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可

方法二:在mysql命令模式下

对于连接数已经超过600或是更多的情况,可以考虑适当的限制一下连接数,让前端报一下错,也别让DB挂了.DB在了,总是可以用来加载一下数据,当数据加载到了nosql里了,慢慢的DB压力也会降下来的.限制单用户连接数在500以下,如:

set global max_user_connections=500;

MySQL随着连接数的增加性能会是下降的,这也是thread_pool出现的原因,另外对于有的监控程序会读取information_schema下面的表的程序可以考虑关闭下面的参数.

innodb_stats_on_metadata=0

set global innodb_stats_on_metadata=0;

方法:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppassword

设置新的最大连接数为200:mysql> set GLOBAL max_connections=200

显示当前运行的Query:mysql> show processlist

显示当前状态:mysql> show status

退出客户端:mysql> exit

查看当前最大连接数:mysqladmin -uusername -ppassword variables

这个参数主要防止对读取information_schema时造成大量读取磁盘进行信息统计(如果慢查询中出现关于information_schema中表时,也可以考虑禁用该参数)

处理依据:当学校的一个食堂一分钟只能为两个打饭, 忽然来了100个时人来打饭,又没排队, 不出会现了打饭的师傅要用点时间去选择为那个用户服务了, 人越多,场面就越乱, 难免出现用户大吼该他的场面, 最后有可能就出现不是打饭了,而时之间相互打架了,打饭的师傅也将收到同时有90个以上的Server too busy. 如果能排一下队.最多也就50分钟能处理完了.

方法三:linux中得新编译mysql

以centos 4.4 下面的mysql 5.0.33 手工编译版本为例说明:

vi /usr/local/mysql/bin/mysqld_safe

找到safe_mysqld编辑它,找到mysqld启动的那两行,在后面加上参数:

-O max_connections=1500

具体一点就是下面的位置:

  1. then $NOHUP_NICENESS $ledir/$MYSQLD 
  2. $defaults --basedir=$MY_BASEDIR_VERSION 
  3. --datadir=$DATADIR $USER_OPTION 
  4. --pid-file=$pid_file 
  5. --skip-external-locking 
  6. -O max_connections=1500 
  7. >> $err_log 2>&1 else 
  8. eval "$NOHUP_NICENESS $ledir/$MYSQLD 
  9. $defaults --basedir=$MY_BASEDIR_VERSION 
  10. --datadir=$DATADIR $USER_OPTION 
  11. --pid-file=$pid_file 
  12. --skip-external-locking $args 
  13. -O max_connections=1500 >> 
  14. $err_log 2>&1"  --phpfensi.com 
  15. 保存。 
  16. # service mysqld restart 
  17. # /usr/local/mysql/bin/mysqladmin -uroot -p variables 
  18. 输入root数据库账号的密码后可看到 
  19. max_connections 1500 即新改动已经生效。

Tags: MYSQL连接数负载 MYSQL负载能力

分享到: