关于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服务即可。

 

posted @ 2021-06-29 17:48  正义的棒棒糖  阅读(241)  评论(0编辑  收藏  举报