1

我的程序(游戏服务器)经常从表中删除许多记录,然后也将许多记录插入到表中。用例是:

  1. 一个角色可能有很多物品,每个物品都有它的属性。
  2. 一旦一个角色被加载到游戏中,他的项目就会存储在内存中。
  3. 当角色存在游戏时,所有旧记录(角色加载到游戏之前)将被删除,程序会将角色的新项目插入数据库。
  4. 一个角色平均有 100 个项目(100 个项目记录和 100 个其他项目属性记录)

当 CCU 达到 1k 左右时,mysql 控制这些读/写会变得非常慢。

我尝试了很多方法来优化 MySQL,但它们还不够好。我的临时解决方法是为 MySQL 数据文件夹使用 SSD 磁盘。

我的问题是:我应该使用其他 DBMS(目前正在考虑使用 MongoDB ...)吗?我应该选择什么?

4

1 回答 1

1

MySQL 可以处理很多事情,但是表的频繁INSERT,UPDATEDELETE选项会导致严重的降级。保持 MySQL 在高负载下运行是可能的,但对于这种情况,您需要将其分片到不同的表或数据库中。

不过,为 MySQL 使用 SSD 并不是一个坏主意。

如果您可以围绕像Redis这样的快速键值存储来构建系统,那么您可能会拥有您想要的所有性能,前提是所有数据都可以放入内存中。

于 2013-02-01T16:57:34.310 回答