0

我有一个更大的查询表单 mysql 的页面,结果可能超过 2MB。因为我的服务器内存不够(我应该给mysql安排内存以加快查询时间),所以我放弃了memcached。相反,它是一个txt文件。

这种情况如何锁定文件?如果文件被锁定,则只读取,如果文件未被锁定,则先写入再读取。谢谢。

if((time()-filemtime(filename)) > 60){
   //mysql_query;  query time less than 1.5 seconds
   if(ex_lock){ // if file is lock, only read
      file_get_contents($filename);
   }else{  // if file isn't lock, first write then read
      file_put_contents($filename, $query_contents);//some file size could be 2mb
      file_get_contents($filename);
   }
}
4

1 回答 1

1

使用flock(),但如果您使用 2MB 数据创建结果集,我建议您缓存它们。结果集真的需要每隔一秒更新一次吗?

于 2012-10-27T08:08:41.007 回答