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

 更新时间:2013年08月16日 15:24:46   作者:  
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
具体一点就是下面的位置:
用红字特别说明:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500
>> $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=1500 >>
$err_log 2>&1"
保存。
# service mysqld restart
# /usr/local/mysql/bin/mysqladmin -uroot -p variables
输入root数据库账号的密码后可看到
max_connections 1500 即新改动已经生效。

相关文章

  • windows下mysql 5.7.20 安装配置方法图文教程

    windows下mysql 5.7.20 安装配置方法图文教程

    这篇文章主要为大家详细介绍了windows下mysql 5.7.20 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • MySQL不区分大小写配置方法

    MySQL不区分大小写配置方法

    MySQL 表内数据条件查询不区分大小写是因为排序规则的问题,本文主要介绍了MySQL不区分大小写配置方法,对大家的学习或者工作有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2024-01-01
  • mysql如何在存储过程中输出日志信息

    mysql如何在存储过程中输出日志信息

    这篇文章主要介绍了mysql如何在存储过程中输出日志信息问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • MySQL备份脚本的写法

    MySQL备份脚本的写法

    这篇文章主要介绍了MySQL备份脚本的写法,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • MySQL中随机生成固定长度字符串的方法

    MySQL中随机生成固定长度字符串的方法

    在MySQL中有时需要随机生成数字或字符串,随机生产数字可直接使用rand()函数,但是要随机生成字符串就比较麻烦。
    2010-12-12
  • Mysql、Oracle中常用的多表修改语句总结

    Mysql、Oracle中常用的多表修改语句总结

    这篇文章主要给大家介绍了关于Mysql、Oracle中常用的多表修改语句的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • mysql 存储过程详解

    mysql 存储过程详解

    这篇文章主要介绍了mysql 存储过程详解的相关资料,需要的朋友可以参考下
    2016-09-09
  • mysql insert 存在即不插入语法说明

    mysql insert 存在即不插入语法说明

    这篇文章主要介绍了mysql insert 存在即不插入语法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • MySQL将多条数据合并成一条的完整示例

    MySQL将多条数据合并成一条的完整示例

    我们在使用mysql的时候常会遇到合并的需求,下面这篇文章主要给大家介绍了关于MySQL将多条数据合并成一条的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • mysql如何获取时间整点

    mysql如何获取时间整点

    这篇文章主要介绍了mysql如何获取时间整点问题,具有很好的的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论