首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL一次并发连接太多

MySQL一次并发连接太多
EN

Stack Overflow用户
提问于 2012-12-13 14:28:10
回答 3查看 2.1K关注 0票数 2

我同时测试了200个并发用户的JMeter,持续了大约30秒,注意到MySQL连接失败。

该数据库具有良好的结构,包括索引、查询和缓存。

我们是不是应该看看MySQL企业版这样的东西了?

或者我们有没有办法改善这一点?

这是我得到的错误:

代码语言:javascript
复制
Error: 2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

mysql_connect() PHP函数被触发时也会产生错误

EN

回答 3

Stack Overflow用户

发布于 2012-12-13 15:00:19

您需要设置名为max_connections的MySQL全局变量,以增加每台MySQL服务器的最大连接数。但是,您需要意识到,增加多个连接意味着更多的CPU和内存消耗。

票数 2
EN

Stack Overflow用户

发布于 2012-12-13 14:33:03

尝试在MySQL -200Connections中设置max_connections变量应该不会有太大问题,除非您的查询非常复杂。

代码语言:javascript
复制
SET GLOBAL max_connections=500;

如果这还不起作用,那么使用您的JMeter结果来确定哪些查询比其他查询花费的时间要长得多(尝试使用上升期和/或最大用户数来获得一批好的样本,而不会导致连接实际失败。

然后,这些查询需要重构和/或相关数据需要重构。如果尽量避免过多的联接和嵌套select语句,即使是在索引良好的系统上,也可以极大地提高查询性能。使用MySQL的EXPLAIN特性来找出数据库实际为您做了多少工作。

票数 1
EN

Stack Overflow用户

发布于 2012-12-13 14:53:50

在php.ini中,签出

代码语言:javascript
复制
mysql.allow_persistent = xx
mysql.max_persistent = xx
mysql.max_links = xx
mysql.connect_timeout = xx

如果您的服务提供商允许,也可以使用ini_set()在代码中设置它们。

请参阅http://php.net/manual/en/ini.list.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13854218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档