我在PHP脚本中有一个mysqli_query()
,通常需要大约10毫秒才能完成。但是,有时需要大约5000毫秒。此查询对于网站正常运行并不重要,即如果超过10毫秒,则可以忽略该查询。
这可能吗?
类似的东西:
<?php
// microtime here is X
$query = mysqli_query($connection, "(do something)");
// if difference between time now and previous time is bigger than 10 ms,
// skip waiting for the $query result and go on
?>
如果有可能这样的话,我们是否也可以取消正在运行的查询,以便MySQL服务器知道我们不再需要结果并停止处理它?</ p>
答案 0 :(得分:1)
由于查询不敏感,您应该缓存结果,而不是每次都访问数据库。
PHP提供mysqlnd-qc
(qc
用于查询缓存),它与APC和朋友一起缓存MySQL查询的结果。
另一种选择是缓存模板。 Smarty has this included。这意味着您只渲染一次页面,然后仅在一定的固定时间后渲染它。