MySQL 具有强制最大连接数的功能max_user_connections。
从 PHP(和其他语言)连接时,如果您超过该数量,我的理解是您的连接将失败,并出现错误,说明您已超过最大连接数。正确的?
我的偏好是让连接调用等待(直到某个超时限制)以使连接可用。但是,我无法通过阅读 MySQL 文档和搜索网络来确定执行此操作的方法。
我担心的是,如果我们的 Web 应用程序有大量流量导致大量并发 MySQL 连接尝试,我们的一些用户脚本将以错误结束。自然地,我们可以修改调用代码以尝试重新连接到一定次数,但是如果我们可以修改连接尝试本身来处理这个问题,它会更简洁,而不是必须将每个“连接”调用包装在一个循环。此外,循环不会导致真正的 FIFO 队列,因为每个单独的调用线程会等待一小段时间然后再试一次,它是否获得连接取决于在那个特定时刻是否有可用的连接。然后它会再次等待,在它等待的时候,一个连接可能会打开,另一个“更靠后”的线程可能会抓住它。
那么,当使用任何 PHP API 连接到 MySQL 时,有没有办法以“等待连接可用”的方式尝试连接?