目前,我受雇的公司通过 mysql 进行商店页面访问,为客户提供每日流量统计数据。表结构为:
visit_id、page_id、ts、ip、uri、site_id
到目前为止,共有 8500 万行......而仅存在 2200 个帐户。
向客户端发送统计信息的格式是:
总访问次数:XXXX 最近 24 小时访问:XXXX
在保持其当前功能的同时进行重组的最佳方法是什么?
最佳答案
我猜测访问日期位于单独的访问表中,如果将其非规范化,您将获得更好的吞吐量。
预先计算结果将使统计查询运行得更快,下面是您要执行的操作的一般概念。
CREATE TABLE stats_table (
, site_identifier INT
, date_visited DATE
, visit_count INT
, INDEX(site_identifier)
);
您可以增加访问计数,而不是每次访问都插入此表。然后你可以这样查询:
SELECT site_identifier, visit_count FROM stats_table where date_visited = 'today';
SELECT site_identifier, SUM(visit_count) AS `total_visits` FROM stats_table GROUP BY site_identifier;
您可以组合这两个查询,但单独查询它们可能会更快。
关于php - 修改mysql数据库以提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274913/