谈谈高并发情况下MySQL最大连接数优化思路!

谈谈高并发情况下MySQL最大连接数优化思路!

问题描述:日常开发中,相信不少人肯定都遇到过都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况。

谈谈高并发情况下MySQL最大连接数优化思路!

问题分析:实际使用中,造成这种情况可能确实是访问量过高了,这就需要加机器;但是大多数时候是可以优化,网上很多介绍的是修改MySQL配置文件里的max_connections和wait_timeout参数,这确实是个问题。但是,一般DBA会处理这些问题,很多时候反而是业务层面的不合理造成的。

那么,怎么就解决这些问题呢?

首先,我们来查看MySQL的最大连接数:

谈谈高并发情况下MySQL最大连接数优化思路!

如果是连接数太小了,可以适当修改一下,超时时间太长的话同样直接改小就行。

其次,用户增长太猛,这个时候就需要添加机器了。

但是这些都不是今天要提的重点,我们今天要讲的是业务层优化的一些实战。

一、过度依赖数据库

首先,数据库并不是万能,不要把各位运算和数据都存放进去,尽量减小数据压力;其次,合理使用缓存,例如Memcache和Redis,我们都知道二八定律,它同样适用于互联网,百分之八十的请求最终落在百分之二十的业务上,所以能不查询数据库的时候尽量不要去找数据库。

二、谨慎使用长链接

很多时候是不需要使用长连接的,特别在一些网站中(比如PHP中mysql_pconnect),短连接能解决的问题就用短连接,长连接有可能导致大量连接得不到释放无法使用。

三、优化慢SQL

慢SQL可以说是影响网站性能的毒瘤,SQL越快,连接占用的时间就越短。

最后,祝大家新年快乐,工作顺利!


分享到:


相關文章: