在每个页面视图上插入数据库行

Joh*_*ohn 4 php mysql

我正在研究一个需要在MySQL表中保存页面每个视图的日志的系统.仅当访问者在过去24小时之前未访问该页面时,才会记录该视图.我想知道在性能和数据库大小方面这样做是否会成为一个问题.

需要这样做的网站平均每天有大约60,000个独特的综合浏览量,因此每天大约增加60,000个新行(每2秒不到1个).该表仅3列:i_id,ip_address,timestamp.i_id是另一个表的外键.

该表将在每天结束时使用CRON脚本清除.

这样做会不会立即造成数据库紧张?例如,如果网站流量激增(它经常发生),它可以在一天内拍摄超过200,000次网页浏览量,这意味着每秒超过2次查询.

OMG*_*ies 6

一般约定是在审计表上没有约束(主要的,外来的等),当然也没有索引 - 以上所有都会减慢插入速度.

批量插入可以考虑 - 批量插入以减少数据库所需的连接数,操作所涉及的时间量(一对多).此外,如果为此编写事务日志 - 最小化写入它们,因为如果您希望能够在某个时间点恢复数据库,则需要写入IO可能会影响数据库.

我没有看到在一天结束时清理记录的意义 - 两天内发生的流量怎么样? MySQL分区可能是一个更好的主意.

  • @John:这是你的系统,但是按月,年,时间汇总可以为你的系统提供更多的价值. (2认同)