-2

私はこれについて考えてきました。10000 人の訪問者が 24 時間 365 日オンラインでアクセスしているサイトでは、lastaction > time() - 300 (5 分前) ですべての行を選択するクエリを実行するのは適切ではありませんか? このクエリは、1 分間に何千回も実行されます。

4

1 に答える 1

0

memcached ( documentation )のようなキャッシュを使用します。

次に、キャッシュの有効期限が切れた場合にのみこのクエリを実行します

SELECT count(*) FROM users WHERE status = 1 // assume status = 1 = logged in here

そのようです:

$memcache = memcache_connect('localhost', 11211);
// it is highly important to firewall off your memcache port.
$contents = memcache_get($memcache, 'user_count');
if ($contents === false) {
    $count = /* query here */
    memcache_set($memcache, 'user_count', $count, 0, 2);
} else {
    $count = htmlspecialchars($contents);
    // note: slightly unsafe in that there is no security. always escape. 
}
于 2013-02-03T20:10:15.930 に答える