关于MySQL取不到数据
有时明明有数据但是在某些时刻(并发的时候)就是取不到,比如某个会员买了会员卡,但是关键时候查不到卡,你说尬不尬?
其实mysql和人是一样的,只不过处理速度远远大于人,但是到了一定的量之后也会处理不过来,就像去奶茶店买奶茶,你一个人去买一下子就好了,但是几百个人同时买就需要排队
mysql是同样的一个道理,但是我们怎么知道我们的mysql最多可以接多少客呢?执行下面这句就好了
mysql> show variables like '%max_connections%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 214 | +-----------------+-------+ 1 row in set (0.03 sec)
执行了 show variables like '%max_connections%'; 之后可以看到,我的最大数是214,当同一时刻215个人来买奶茶的时候,你就等着把,没你的位置了
但是你会杠,你怎么就知道我是215个,玩意我是214个人呢,没关系执行下面这一句看你当前的访问量
mysql> show global status like 'Max_used_connections'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Max_used_connections | 215 | +----------------------+-------+ 1 row in set (0.02 sec)
你说巧不巧,我这里刚好执行出来是215,所以我真的苦逼的没有及时的买到奶茶
这个时候在兜里的钱允许的情况下(内存够用的情况下)把你奶茶店扩大装修一下吧,执行
mysql> set global max_connections=1024; Query OK, 0 rows affected (0.00 sec)
然后再次查看你能接多少客
mysql> show variables like '%max_connections%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 1024 | +-----------------+-------+ 1 row in set (0.04 sec)
此方法有个弊端,就是临时的,重启之后又没了,所以想一劳永逸的话
修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:
max_connections=512
重启mysql服务即可。