从MySQL表记录轮询

时间:2012-05-14 08:52:08

标签: mysql polling records

对于多个连接的客户端,从MySQL表中获取记录的最佳方法是什么,这些客户端会同时和定期检索记录。

因此,当新记录进入表格时,每个人都会收到新消息,但旧消息不应再次检索。

当前表格结构: MessageId,Message,DatePosted,MessageFromID

由于

1 个答案:

答案 0 :(得分:1)

您的问题可以转换为:每个客户如何知道,哪些记录可以读取,哪些记录不可以。

有两种完全不同的方法,具有非常不同的属性。

  1. 让客户关心
  2. 让服务器关心它
  3. 模型#1非常简单地要求你

    • 如果您的MessageID不能保证递增,请在某些字段上使用AUTO_INCREMENT之类的内容
    • 在服务器上,不仅为每个客户端提供消息,还为ID
    • 让客户端保留此ID并将其用作下一轮询的过滤器

    Model#2需要你

    • 使用'ClientID和MessageID'
    • 创建另一个表
    • 每当客户端收到消息时,在那里创建一条记录
    • 使用不存在此类记录作为轮询过滤器