我有一个网页,并在MySQL表中使用CRUD操作进行一些数据操作。有许多正在运行的桌面客户端应用程序与相同的数据库通信,每当我通过网页进行更改时,所有这些客户端都需要被通知到更改。但我不知道如何最好地处理这个问题。桌面客户端应用程序是用C#编写的。同时,我知道至少在MySQL中使用ADO.NET提供程序异步通知桌面客户端关于发生在数据库中的更改是不可能的。
有一个选项是客户端应用程序定期创建数据库连接并检查MySQL表上的更改。但如果我们有1000个运行实例,并且每个实例每2秒就会创建连接并读取相同的表,那么这不会非常消耗数据库服务器资源吗?
还可以编写插入/更新/删除触发器,使其填充另一个表以记录所做出的更改,然后我们将轮询这个新的“changes_made”表。
此外,还有一种选择是创建套接字服务器,轮询“changes_made”表,如果有任何更改,则向所有桌面客户端发送更改数据,这些客户端在此上下文中作为套接字侦听器。因此,我们将摆脱客户端的轮询,并显着降低数据库连接和负载的总量。
在这里,我想知道解决这些任务的最正确和可扩展的方法是什么。
有一个选项是客户端应用程序定期创建数据库连接并检查MySQL表上的更改。但如果我们有1000个运行实例,并且每个实例每2秒就会创建连接并读取相同的表,那么这不会非常消耗数据库服务器资源吗?
还可以编写插入/更新/删除触发器,使其填充另一个表以记录所做出的更改,然后我们将轮询这个新的“changes_made”表。
此外,还有一种选择是创建套接字服务器,轮询“changes_made”表,如果有任何更改,则向所有桌面客户端发送更改数据,这些客户端在此上下文中作为套接字侦听器。因此,我们将摆脱客户端的轮询,并显着降低数据库连接和负载的总量。
在这里,我想知道解决这些任务的最正确和可扩展的方法是什么。