3

我有mysqli_query()一个 PHP 脚本,通常需要大约 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 服务器知道我们不再需要结果并停止处理它?

4

1 回答 1

1

由于查询不敏感,因此您应该缓存结果而不是每次都访问数据库。

PHP 提供mysqlnd-qc了(qc用于查询缓存),它与 APC 和朋友一起缓存 MySQL 查询的结果。

另一种选择是缓存模板。Smarty 已包含此内容。这意味着您渲染页面一次,然后仅在某个固定时间后渲染它。

于 2013-07-28T08:43:01.533 回答