您当前的位置: 首页 > 网站编程 > PHP教程 > 解决Mysql "Too many connections"问题

解决Mysql "Too many connections"问题

作者:xiaoxiao 来源:未知 发布时间: 2014-07-30 09:38 点击:
之前在博客介绍过一篇mysql锁机制相关文章,MYISAM只支持表锁;INNODB可以支持表锁和行锁。 最近公司平台频繁出现Too many connections,真的让我受了很多伤啊,原因就是表锁引起SQL堵塞,影响效率,造成连接数达到max_connections而崩溃。说说我的解决流程。 (1)检

解决Mysql "Too many connections"问题

  之前在博客介绍过一篇mysql锁机制相关文章,MYISAM只支持表锁;INNODB可以支持表锁和行锁。

  最近公司平台频繁出现"Too many connections",真的让我受了很多伤啊,原因就是表锁引起SQL堵塞,影响效率,造成连接数达到max_connections而崩溃。说说我的解决流程。

  (1)检查mysql配置的两个参数max_connections最大连接数和 wait_timeout连接空闲等待时长,如果是默认值,请自行修改:

  set global max_connections=3000;

  set global wait_timeout=10;

  (2)检查mysql慢查询日志

  1)发现一条 sql如下结构: select count(*) from table where ..., 我的业务表示INNODB,查阅资料发现,select count(*) from table,MyISAM只要简单的读出保存好的行数,而InnoDb会扫描所有的行数;但当该sql包含where时,两者都会对全表扫描,当然where后是索引会快的多。如果表的数据确实很大,比如我,就做了cache处理

  2)慢查询中出现了table level lock,但是表的Innodb引擎。怎么回事?InnoDB 是行级锁,原则上,更新操作只会锁住需要修改的行。如果读和写是相同的行,会阻塞;如果是不同的行,可以并发操作。不过InnoDB的行锁是通过索引实现的,如果检索条件没有索引,则会使用表锁。
分享到:
本文"解决Mysql "Too many connections"问题"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(4)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4