修改mysql数据库以提高效率

时间:2011-03-11 15:34:15

标签: php mysql

目前我雇用的公司通过mysql进行商店页面访问,以便为其客户提供每日流量统计信息。表结构是:

visit_id,page_id,ts,ip,uri,site_id

到目前为止,有8500万行......当时只有2200个帐户。

将统计信息吐出到客户端的格式为:

总访问量:XXXX 过去24小时访问:XXXX

在保持当前功能的同时重组这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我猜测访问日期是在一个单独的访问表中,如果你反规范化,你将获得更好的吞吐量。

预先计算结果将使您的统计信息查询运行得更快,下面是您要做的一般概念。

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;

您可以将这两个查询结合起来,但单独查询它们会更快。