mysql - 如何处理过多的 SQL 连接?
问题描述
我正在尝试为应该能够承受 1000 个同时连接的手机游戏开发服务器。服务器连接到 MySQL 数据库,每次我要访问数据库时,我都会用 using 语句将我的 SQLConnection Cmd 和 Reader 括起来,以便它们都被短暂打开并在之后关闭:
using (MySqlConnection SQLToUse = CreateSQLConnection()) {
MySqlCommand cmd = new MySqlCommand(query, SQLToUse);
...
}
我遇到了读者问题,这就是我必须这样做的原因。从理论上讲,如果说 1000 个用户同时打开 SQL 连接,那么最大数量的 SQL 连接(据我所知是 151 个)将阻止我创建更多连接并引发错误。这还没有发生,因为服务器一次拥有的最高用户数是 10,但我在问如何防止它。感谢您一直阅读本文并提前提供帮助
解决方案
您需要做的是创建一个保持连接打开的服务部分,然后游戏的另一部分向该部分发出请求。(有点像你使用图书馆的方式)
我还建议您添加一个堆栈,每次完成查询时,它都可以检查堆栈以运行另一个查询。每次将某些内容添加到堆栈时,检查是否有任何可用连接,如果有激活连接,它将在堆栈中拾取新行。
很难在没有关于使用什么语言的信息的情况下描述代码,但这应该会让你朝着正确的方向前进。
推荐阅读
- django - self.assertEqual(response.status_code, status.HTTP_200_OK) AssertionError: 404 != 200
- javascript - 单击 Javascript 中的文本时发生 Swal.fire (Sweetalert)
- reactjs - 使组件可选择受控或不受控
- c++ - 我想在组合/整个类的成员初始化器列表中初始化“部分”类的数组
- arduino - Arduino - 灯的持续时间超过预期
- javascript - 如何测试一个函数?
- java - 如何将数据从活动传递到地理围栏广播接收器?
- excel - 将 sheet2 第一行的最后一列与 sheet1 的 F2 单元格进行比较,如果匹配,则显示 msgbox,否则将 F2 范围粘贴到 sheet2
- python - 我在 pygame 中创建了一个没有动画的基本平台游戏。我已经为左右移动使用了事件处理,但我无法添加跳跃机制
- javascript - 在反应中导出 PDF?