【问题标题】:Is there a way to realtime detect if there's new record in database?有没有办法实时检测数据库中是否有新记录?
【发布时间】:2021-05-04 21:39:47
【问题描述】:

我有 MySQL 数据库,并使用 C# 和 winforms 进行编程。它将通过局域网在少数 PC 上运行。我想知道是否有一种方法可以检查数据库中是否有更改,而无需每秒进行请求。

示例: 管理员将从数据库中删除记录,在工人电脑上我想自动刷新列表。

【问题讨论】:

  • 不知道,在 SQL Server 上,您有 SqlDependency,您可以注册并提醒您表更改。
  • @Charlieface 我在我的项目中没有看到类似的东西,但我发现了这个 link 你认为这可行吗?
  • @Luuk 但它适用于 JavaScript
  • 听起来不错,只需检查对非常大的表的性能影响

标签: c# mysql winforms


【解决方案1】:

不用担心轮询的性能。使用合适的INDEX,MySQL 可以每秒处理 100 次轮询——无论数据集大小如何。

让我们看看SHOW CREATE TABLE 和暂定的SELECT 来执行“投票”;我可能有更多提示。

另外,让我们看看需要“触发”工作人员采取行动的管理员查询。当然,管理员可以做一些简单的事情来造成这种情况。对表进行校验和是非常重量级的。

您应该考虑将管理操作编码在存储过程中,从而将轮询机制与管理操作分开。

JavaScript 可以使用 AJAX 来执行 INSERT(或调用存储过程)。

这句话可能适用:“不要排队,只要去做。”也就是说,admin/javascript 动作可以调用应用程序(PHP/Java/VB/whatever)来实际执行该动作,无需排队。 (请提供更多细节,以便我们讨论这是否是真正的解决方案。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多