-2

我一直在思考这个问题。一个有 10000 名访问者 24/7 在线访问的网站,运行查询以选择所有具有 lastaction > time() - 300(5 分钟前)的行不是很好吗?此查询将每分钟运行数千次。

4

1 回答 1

0

使用像memcached文档)这样的缓存。

然后,仅在缓存已过期时才运行此查询

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 回答