1,首先得查找有没有比较耗时的sql,如果有一定要先解决掉,因为可能能因为低效的sql,照成query请求等待,从而导致connect的数量较多
2,手动释放 数据库连接,这点也很重要,如果没有手动释放资源,如果某个请求处理时间较长,那么自动释放资源的时间就会比较长(进程结束)
3,检查 max_connections 设置是否合理,适当的设置大点,但这不从根本上解决问题。
4,缓存是否做的到位,如果数据要求实时性不是很强的都可以缓存,这是非常有效减少连接的方法。
5,如果以上几方面都已经做的很到位了,那么就可能该考虑增加mysql服务器了,比如分库等。
给几条建议:1.不使用持久链接,在你程序里使用mysql_connect代替mysql_pconnect。如果非要持久连接,请在mysql配置文件里设置一下睡眠超时参数wait_timeout,如果某个连接超时,会被mysql自然终止。比如,wait_timeout=100 #即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止。
2.设置mysql查询缓存QueryCache,它非常有用,当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。具体怎么设置查询一下手册资料。
3.代码优化,检查你的代码,在程序执行完毕后,是否调用mysql_close来及时关闭连接;查找及优化查询过慢的SQL。
1、减少MySQL请求:可以把有些不需要实时的东西放到cache里,以减少MySQL的请求数缓解压力。
2、做MySQL的主从架构,将请求负载均衡到不同的从服务器上。
说说我一般的解决办法:首先 连接多时要检测配置是否还有空间放大,如果没有就定位请求比较多且耗时的sql,尽量的优化此处sql,如果优化以后还是扛不住,那就只能把此处程序的mysql逻辑改为cache逻辑来避开,其实这些都是老程序积累下来,没办法只能在原来基础上改
补充一下如果是全新开发的建议:1 对数据应合理分库分表,由应用层去动态的选择库和表。MySQL的innodb表虽然理论上可以装海量的 数据,但在我们的业务场景下,最好控制在200w以下, 合理索引
2 需要联合查询时善用left join/right join而不是直接多表联合
3 尽量不要使用select套select的复合查询,如果能拆开,尽量拆开,多条精悍的SQL,组合起来可能就 是一条庞大的SQL,应该避免。
4 善用cache,将不常修改的,数据量有限的,又是被密集查询的信息,加载到cache里,可以有效的降 低数据库压力
5 如果一些逻辑可以放到应用层去完成,可以考虑放到应用层去完成。但如果将SQL逻辑分拆到应用层 可能导致对数据更频繁的访问的话,那么需要考虑修改应用逻辑,数据结构,或回到合理的联合查询上来
1,杜绝使用MySQL持久连接方式。2,搭配Memcache。前两点是必须的。如下可以适当做做:1,主从数据库2,MySQL调优
根据你的意思来说,你是想要减少mysql 的链接次数1、采用1主多从, 把压力分摊到步同的服务器上面2、看看是否有可能优化你的SQL, 减少QUERY 的数量3、缓存.....
使用mysql_connect连接数据库也要注意下数据库连接的销毁
采用Nosql,将查询的数据缓存,减少数据库查询次数
以上问题都不能解决,公司又特别有钱,hadhop
减少sql链接请求,可以用加缓存,因为这样请求数据只需请求缓存俩面的数据了,当数据变化时,删除缓存。下次我有人请求数据,读出来后保存缓存中,这样就可以减少链接了。还有优化你的sql语句,这样也能达到减少sql消耗
首先你得分析一下,是哪的问题,建议生成静态的,这样减少了数据库的交互2,检查sql语句的执行效率,优化语句。3,关闭持久链4断点测试一下是哪里占资源
mysql 连接数过多 mysql连接次数太多
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL中表连接的常用技巧
MySQL中表连接的常用技巧
MySQL 表连接 右连接 -
Mycat占用mysql连接数过多
mycat mysql 连接数过多
mycat mysql 连接数 -
vue antdesign tree 回显 全选
Vue前端相关知识了解一、vue和小程序的运行 Vue的项目:Vue是一个渐进式的响应式的前端框架它的运行,包含了从node环境------vue-cli脚手架------vue项目的创建、运行它的基础知识,有从数据的双向绑定渲染------基本html,css,js代码书写------路由配置------一些(判断、循环)样式
antd vue 树更新数据后不展开 react native多语言 react 循环 vue mxgraph渲染xml页面 vue v-for循环动态获取