【发布时间】:2016-12-28 04:29:36
【问题描述】:
我只是想要一种关于如何使用实时记录构建数据库的方法,所以不要只是投反对票。我不希望有任何代码。
目前我有一个拥有大约 2000 个用户的 MySql 数据库,但他们正在变得越来越多。每个玩家/用户都有几个点,这些点会随着某些动作而增加或减少。
我的目标是这个数据库大约每秒刷新一次,并且点数更多的用户向上移动,其他用户向下移动......等等
我的问题是,对于这个必须每秒更新记录的“实时数据库”,最好的方法是什么。在 MySql 中,我可以运行执行 SQL 命令的基于时间的操作,但这不是我认为的最佳方式。有人可以提出一个处理这个问题的好方法吗?例如。其他数据库提供商,例如 MongoDB 或其他什么?
编辑
这在客户端不起作用,因此由于一些基于时间的事件,我不能简单地将其推送/发布到数据库中。解释:用户正在应用程序中训练他的角色。此培训(升级 1 级)需要 12 个小时。时间过去后,如果用户没有自己发送发布请求(如果用户未登录),则数据库中的记录也应自动更新(如果用户未登录),其他用户应在其个人资料中看到更新的数据。
【问题讨论】:
-
如果玩家的动作发生,则将其存储在您的表中。要获得数据的实时视图,请在每次要刷新 GUI 时运行特定查询
-
不,这并不容易,因为某些任务需要大约 1 天或更长时间才能完成。如果用户登录,我只能将它们推送/发布到服务器,并且可能是一个事件需要 1 天,但他在 1 周后登录,此时没有更新记录。 @juergend
-
您可以为此目的使用 jquery ajax
-
你能举一个需要更多时间(比如几天)的事件的例子吗?
-
始终更新包含数据的数据库。我认为关键是获取数据,以便为查看数据的每个人实时更改。如果以分散方式(如 1000 点,分散在 3 天)给用户点数,您可以存储日期/时间并在每次需要时计算当前点数。如果一个用户完成一个流程 1.5 天,你可以计算它有 500 分,而不需要每秒更新数据库。
标签: php mysql sql mongodb database