【发布时间】:2016-01-28 17:50:03
【问题描述】:
我的主页上始终有大约 700 到 800 名访问者(根据分析),而且总体点击率很高。但是,我希望在我的主页上显示我的用户和其他内容的实时统计数据。因此我有这个:
$stmt = $dbh->prepare("
SELECT
count(*) as totalusers,
sum(cashedout) cashedout,
(SELECT sum(value) FROM xeon_stats_clicks
WHERE typ='1') AS totalclicks
FROM users
");
$stmt->execute();
$stats=$stmt->fetch();
然后我将其用作$stats["totalusers"] 等。
table.users have `22210` rows, with index on `id, username, cashedout`, `table.xeon_stats_clicks` have index on `value` and `typ`
但是,每当我启用上述查询时,我的网站都会立即变得非常慢。一旦我禁用它,加载时间就会急剧下降。
这还能怎么做?
【问题讨论】:
-
你有两个表的主键吗?
-
是的,在两个表的“Id”上。
-
您是否查看过查询的
EXPLAIN以了解阻塞点可能在哪里。 -
您是否需要实时信息.. 使用缓存(一段时间)就可以了。来自内部选择的字段类型索引也很有帮助
-
是
totalusers已注册人数或访问人数。