【问题标题】:c# .net mysql - Best way to find an updated row in one million row tablec# .net mysql - 在百万行表中查找更新行的最佳方法
【发布时间】:2020-05-30 22:30:36
【问题描述】:

我在我的 c# 控制台应用程序中查询了一个 MySQL 表。数以千计的更新(行)一直通过另一个程序进入,我想传播它们,让我们说一个简单的方法 Console.WriteLine,以最快的方式(几乎立即)。见图表。

MYSQL to C# updates

我在哪里以最有效/最快的方式进行操作?在 MySQL 服务器上?还是在我的 c# 脚本中?

如果在我的 c# 脚本中,我是使用列表来比较新旧行还是数组?还有什么办法吗?

非常感谢任何帮助。

【问题讨论】:

  • 您的表中是否有任何基于 DateTime 的列在每次更新时都会修改?
  • 您可能想查看 TRIGGERS ...dev.mysql.com/doc/refman/8.0/en/triggers.html 我肯定会检测到 SQL 中的更改,并且只会将更改传播到您的 C#。
  • @Rob 好的,我查看了触发器。据我了解,它告诉 MySQL 服务器内部已经完成了某些操作,然后执行了某个命令。那么如何在我的 C# 程序中接收更新的行呢?我找不到那个答案。

标签: c# mysql .net


【解决方案1】:

使用触发器编写审计表

有一些很好的指南和问题,例如:Creating Triggers to add the data into Audit Table

它不包含您的案例所需的时间戳,并且它还需要您的数据库中的大量空间来存储所有这些更改

【讨论】:

  • 谢谢。所以基本上,我可以创建一个新表并将其调用到队列中,每次拉该表时,我都会删除它的内容?有没有办法在那个时候锁定它,所以如果有新的更新,它们就不会丢失?
  • 您可以为每个条目添加一个时间戳,并删除处理后的时间戳。
  • 好的,谢谢。我认为这对我来说是最好的前进方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多