我有来自在线表的大数据记录。 (超过4000万条记录)
现在我想从表中随时显示在线用户,但是从服务器执行此操作已失败...
例如,当我发送请求在上周上线时,它不起作用(因为该表有非常大的记录)。
这是我的示例php代码:
$d = $_GET['date'];
$time = time() - 60*60 * 24 * $d;
$phql = "SELECT DISTINCT aid FROM onlines WHERE time > '$time'";
所以,你有更好的建议吗?
TNX。
答案 0 :(得分:0)
使用EXPLAIN SELECT ...
查看表格中定义的索引。确保特别针对大表,您查询的列已编制索引。在这种情况下time
。
您可以通过以下方式创建索引:
CREATE INDEX time_index ON onlines (time);
这应该可以加快查询速度。如果您不关心潜在的数据丢失或持久性,您可能会考虑使用内存表来避免IO。这会显着加快查询速度,但如果服务器重新启动或MySQL关闭,它将清空表。