我有一千行的表,我想用图表显示创建analitycs我的前端php
我的表结构是
by user_agent
列i显示操作系统,浏览器和设备。
现在我仍然使用旧算法循环使用for ()
方法并解析每一行。并且需要很长时间来响应并显示数据。
任何人都知道如何在我的网站上不长时间回复显示这些数据?任何的想法?使用数据库结构还是我的php脚本?
谢谢你。
答案 0 :(得分:0)
假设您在PHP脚本中加载所有数据并在PHP中以for循环对其进行后处理,则应更改数据库查询。 GROUP BY
语句可能有所帮助。当然,您需要更改脚本以使用新数据。重新审视数据库结构也是一个好主意。更好的方法可能不是将整个用户代理字符串保存在一列中,而是使用多个列。
之前的例子:
$data = $db->query('SELECT * FROM table');
for ($i = 0; $i <= $data->max(); i++) {
$row = $data->getRow($i);
postprocessRow($row); /* $sum += 1; */
}
之后的例子:
$data = $db->query('SELECT count(*) as weight, * FROM table GROUP BY user_agent');
for ($i = 0; $i <= $data->max(); i++) {
$row = $data->getRow($i);
postprocessRowWeighted($row); /* $sum += $row['weight']; */
}