【发布时间】:2013-02-01 16:26:37
【问题描述】:
我的程序(游戏服务器)经常从表中删除许多记录,然后也将许多记录插入到表中。 用例是:
- 一个角色可能有很多物品,每个物品都有自己的属性。
- 角色一旦加载到游戏中,他的物品就会存储在内存中。
- 当角色存在游戏时,所有旧记录(角色加载到游戏之前)将被删除,程序会将角色的新项目插入数据库。
- 一个角色平均有 100 个项目(100 个项目记录和 100 个其他项目属性记录)
当 CCU 达到 1k 左右时,mysql 控制这些读/写会变得非常慢。
我尝试了很多优化 MySQL 的方法,但都不够好。我的临时解决方法是为 MySQL 数据文件夹使用 SSD 磁盘。
我的问题是:我应该使用其他 DBMS(目前正在考虑使用 MongoDB ...)吗?我应该选择什么?
【问题讨论】:
-
你是说它加载所有记录,然后删除所有内容,然后重写它(并且有 1000 个用户同时尝试相同的操作)?每次发生这种情况时,每条记录是否都发生了变化?
-
这是我的假设,但是,当我想断开所有用户与服务器的连接时会发生这种情况...... Engine = MyISAM
-
经验法则:仅更新已更改的数据。为简化代码而批量更新批量插入通常不是正确的做法。
标签: mysql performance mongodb insert