0

如果我有这个PHP代码:

<?php
  set_time_limit(0); 
  //mysql connection

  while(true)
  {
    //check for updates in mysql (mysql_query...mysql_num_rows...)
    flush(); 
    ob_flush(); 
    sleep(3);
  }

?>

我的问题:

这段代码不会使我的 MySQL 服务器超载吗?

如果我将有 1000 个用户在线,此代码不会引起问题吗?

4

1 回答 1

1

是的,它会的。它的扩展性很差。

最好在两者之间放置一个快速层,例如 memcached 或 redis。在 RAM 中运行的东西。

无需让每个用户检查数据库是否进行了更新。让一个人检查一下,并使用 fastlayer 与其他人分享结果。

当最后一个数据库查询完成时检查快速层。如果超过 3 秒前,请执行新的 db-query 并更新快速层。否则,只需从快速层中获取值。

于 2012-06-07T13:44:09.623 回答