3

我正在使用 MySQL Connector/NET,我想检查表中是否有任何更改,通常我使用一个计时器,每次它滴答作响时,它都会检查新的更改。

但是计时器不是一个好的解决方案。每次我的软件必须运行 SELECT 命令时,都会浪费大量时间和资源。我想使用事件而不是检查新更改的计时器。

有人告诉我你必须使用 SOCKS 或其他东西。有人有什么想法吗?

4

1 回答 1

2

正如 aleroot 指出的,如果您使用的是 MSSQL,那么 SqlDependency 正是您正在寻找的答案。但是当您使用 MySQL 时,我们没有太多可用的选项。

HTML 5 中引入了一个称为 WebSockets 的概念。它是一种 PUSH 技术。虽然我不确定它是否可以在您的场景中使用,但请阅读以下文章:http: //net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

剩下的选项是定期轮询数据库以查找数据的任何更改。请在下面找到一些建议,以减少服务器上的负载,同时仍然使用轮询:

1)如果没有定期插入数据,您可以使用查询来检查行数(而不是检索整个数据),并且只有在当前和以前的计数发生变化时才检索数据。

2)您可以使用单独的表,只要数据发生变化,该表就会使用触发器进行更新。您的应用程序可以定期查询新表以确定父表中是否有任何数据发生更改。

尝试即兴创作一个解决方案并分享它。

于 2012-04-14T11:39:23.343 回答