我制作了一个节点应用程序,它读取MySQL数据库中每100ms一个表,从另一个应用程序(lua)更新,并将结果与最后一个结果进行比较。如果表已更改,则应用程序将执行操作。阅读过程需要〜0.05ms,完美无缺。但现在我问自己,这是一个可接受的解决方案,或者非常不专业。
答案 0 :(得分:0)
如果你只受限于数据库,我会使用两个时间戳列,如updated_at
和deleted_at
(索引可能 - 应该询问数据库专业人员)并将最后的读取时间存储在客户端上,然后只查询自那以后所做的更改。这样,使用数百万行的表时,它会更舒服。
除此之外,我想到,当发生更新/插入/删除/发生更新/插入/删除时,您可以使用类似websockets的内容来更新客户端。
还有关于此问题的另一个问题:
Which is more efficient to send WebSocket updates with a MySQL database change
延迟修改
您的"如果表格已更改,则应用会执行操作。"句子可能是这里的关键。您可以检查以下内容:
select count(*) from table
where updated_at > last_update_time or deleted_at > last_update_time
然后你可以决定是否采取这种行动。