php - 修改mysql数据库以提高效率

标签 php mysql

目前,我受雇的公司通过 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/

相关文章:

由于权限 : Ubuntu/Linux,PHP 脚本可能会阻止上传文件

javascript - 如何从我的外部 javascript 文件访问 php 变量

php - mySQL WHERE IN 与数组

PHP MySQL 添加到长文本

mysql - 如何检查数据库(MYSQL)中的哪些表在最近 1 小时/1 天内更新

php - 如何通过 PHP 套接字发送二进制表示形式?

php - 从 process.php 选择、提交和通过电子邮件发送结果后,以 HTML 显示复选框值

python - 无法迁移以及如何使用 Django python 设置 mysql DB

php - 创建一个数组数组以提供 CSV 函数

php - Imap_search 很慢