问题描述:日常开拓中,相信不少人肯定都碰着过都会遇见”MySQL: ERROR 1040: Too many connections”的非常情形。
问题剖析:实际利用中,造成这种情形可能确实是访问量过高了,这就须要加机器;但是大多数时候是可以优化,网上很多先容的是修正MySQL配置文件里的max_connections和wait_timeout参数,这确实是个问题。但是,一样平常DBA会处理这些问题,很多时候反而是业务层面的不合理造成的。
那么,怎么就办理这些问题呢?

首先,我们来查看MySQL的最大连接数:
如果是连接数太小了,可以适当修正一下,超时时间太长的话同样直接改小就行。
其次,用户增长太猛,这个时候就须要添加机器了。
但是这些都不是本日要提的重点,我们本日要讲的是业务层优化的一些实战。
一、过度依赖数据库
首先,数据库并不是万能,不要把各位运算和数据都存放进去,只管即便减小数据压力;其次,合理利用缓存,例如Memcache和Redis,我们都知道二八定律,它同样适用于互联网,百分之八十的要求终极落在百分之二十的业务上,以是能不查询数据库的时候只管即便不要去找数据库。
二、谨慎利用长链接
很多时候是不须要利用长连接的,特殊在一些网站中(比如PHP中mysql_pconnect),短连接能办理的问题就用短连接,长连接有可能导致大量连接得不到开释无法利用。
三、优化慢SQL
慢SQL可以说是影响网站性能的毒瘤,SQL越快,连接占用的韶光就越短。
末了,祝大家新年快乐,事情顺利!