首页 > 解决方案 > 如何处理过多的 SQL 连接?

问题描述

我正在尝试为应该能够承受 1000 个同时连接的手机游戏开发服务器。服务器连接到 MySQL 数据库,每次我要访问数据库时,我都会用 using 语句将我的 SQLConnection Cmd 和 Reader 括起来,以便它们都被短暂打开并在之后关闭:

using (MySqlConnection SQLToUse = CreateSQLConnection()) {
   MySqlCommand cmd = new MySqlCommand(query, SQLToUse);
   ...
}

我遇到了读者问题,这就是我必须这样做的原因。从理论上讲,如果说 1000 个用户同时打开 SQL 连接,那么最大数量的 SQL 连接(据我所知是 151 个)将阻止我创建更多连接并引发错误。这还没有发生,因为服务器一次拥有的最高用户数是 10,但我在问如何防止它。感谢您一直阅读本文并提前提供帮助

标签: mysqlsql

解决方案


您需要做的是创建一个保持连接打开的服务部分,然后游戏的另一部分向该部分发出请求。(有点像你使用图书馆的方式)

我还建议您添加一个堆栈,每次完成查询时,它都可以检查堆栈以运行另一个查询。每次将某些内容添加到堆栈时,检查是否有任何可用连接,如果有激活连接,它将在堆栈中拾取新行。

很难在没有关于使用什么语言的信息的情况下描述代码,但这应该会让你朝着正确的方向前进。


推荐阅读