【问题标题】:Mysql: when to use triggersMysql:何时使用触发器
【发布时间】:2012-05-05 20:00:45
【问题描述】:

我目前正在制作一款在线多人国际象棋游戏。我想知道用户触发器是否适合登录每个动作。

然后,我会使用 nodejs 重复检查触发器表并更新玩家和观察者的视觉效果。

由于我只需要在数据库中进行更改,因此视觉方面会自动跟进(使用循环功能检查数据库中的更改数据)。这样做的目的是将视觉效果与制作游戏所涉及的逻辑分开。

你们中的任何人会推荐这种技术还是根本不行?

【问题讨论】:

    标签: mysql triggers


    【解决方案1】:

    您为您的任务描述了一种可能的技术解决方案。但我强烈建议不要这样做。

    这不会很好地扩展 - 它会为您的数据库和应用程序服务器增加大量开销和负载。

    还有其他可以更好扩展的轻量级可能性:

    • node_redis 客户端中使用类似redis 的消息队列。它具有内置的pubsub 语义。
    • 抽象您的数据库调用并将所有数据库更新推送到消息队列。
    • 您可以使用诸如jquery-streamjquery-socket 之类的HTTP 流媒体而不是使用“重复”功能(AJAX 轮询)来获取状态更新。这避免了为每次客户端更新打开新 HTTP 连接的开销。
    • 在服务器端使用 nodejs 的事件驱动特性将新事件推送到客户端连接。

    【讨论】:

    • 我忘了提到我正在使用 nowJS(套接字库)。通过使用它,唯一出现的池将是服务器每秒执行两次以检查更新。一旦找到更新,它将通过套接字请求推送给所有用户。即使最终有一千个用户,数据库仍然会以相同的速率池化,仅由服务器池化。这会对您的推荐产生影响吗?谢谢你的帮助。
    • @Louis 您仍然会在数据库服务器和文件系统上承受(可避免的)负载。
    • 您会向不使用 Node.js 而是使用 PHP 的人推荐什么解决方案?
    猜你喜欢
    • 2013-11-26
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多