3

mysqli_query()通常、完了するまでに約10ミリ秒かかるPHPスクリプトがあります。ただし、5000 ms 程度かかる場合もあります。このクエリは、サイトが適切に機能するためには重要ではありません。つまり、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 クエリの結果をキャッシュします。

もう 1 つのオプションは、代わりにテンプレートをキャッシュすることです。Smarty にはこれが含まれています。これは、一度ページをレンダリングし、特定の一定時間後にのみレンダリングすることを意味します。

于 2013-07-28T08:43:01.533 に答える