繁体   English   中英

MySQL查询执行率

[英]MySQL query execution rate

我正在进行实时聊天,其中涉及长时间轮询以尽快接收消息。 但是,由于afaik Web套接字不支持跨平台,并且我找不到真正的长时间轮询聊天示例,因此我做了类似的事情,但实际上我不确定。

我要做的是在后台调用脚本,该脚本每200毫秒执行一次查询,直到出现新消息。 这就是我很好奇的事情-我执行得太频繁了吗? 假设我使用此聊天室时大约有100 ppl,因此每秒将有500个查询。 这将如何影响服务器性能? 使用以下代码发布即时消息:

while (($x < 99) && ($allowloop))
{
  $query = mysqli_query($con, 'SELECT * FROM messages');
  if (mysqli_num_rows($query) == 0)
  {
    usleep(200000);
    $x = $x + 1;
  } else {
    $allowloop = false;
  }
}

#processing results

任何提示和建议表示赞赏

由于您已经知道的原因,您不想执行此操作。

您需要的是客户端的浏览器可以检测到的一些更改,表明存在新消息。 这可能是文件(带有新消息?)的存在,还是文件中的字符串。

因此,您可以做的是:

  1. 服务器上有一条新消息。
  2. 服务器设置标志,可以是文件,也可以是文件中的字符串。
  3. 客户端浏览器轮询小文件,检查标志。
  4. 如果检测到该标志,则显示新消息。

每隔几秒钟轮询一次就足够聊天了。 这种方法意味着客户端浏览器不会在每次检查时都调用MySQL查询。

在其他情况下,我会使用类似: http://nodejs.org

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM