【问题标题】:Log all requests to web site in database在数据库中记录对网站的所有请求
【发布时间】:2009-05-24 10:10:24
【问题描述】:

我需要在数据库中记录所有帖子并获取网站上的请求。 将有两个表:

  • 带有时间戳、用户 ID 和请求 URI 的请求
  • 带有名称、值和请求 ID 的请求参数

我只会将它用于每月一次的分析报告。没有经常使用这些数据。

我每天大约有 100 万个请求,请求参数表会非常庞大​​。 我可以在 MySQL 中毫无问题地处理这么大的表吗?

【问题讨论】:

  • 你需要它做什么,你会在它上面执行一些查询吗?什么查询,多少,多久一次?还有,一般的access.log里不包含你需要的数据吗?

标签: mysql database performance optimization


【解决方案1】:

我会避免在每个请求上写入数据库,否则您将容易受到斜线点效应的影响。在安静的时间解析您的网络日志以更新数据库。

【讨论】:

  • 你能解释一下什么是斜线效果吗?
【解决方案2】:

此类问题的通常解决方案是编写一个程序来解析整个月的日志。如果您不需要复杂的 MySQL 功能,您应该考虑这种方法。

如果你真的需要数据库,那么考虑离线解析日志。否则,如果您的数据库出现故障,您将丢失数据。众所周知,日志非常安全。

表索引不是免费的。您拥有的索引越多,查询运行的速度就越快,但您拥有的索引越多,插入数据的速度就越慢。

【讨论】:

    【解决方案3】:

    是的,mysql 将正常处理数百万行,但取决于您以后想要对数据做什么以及这些表上的索引,性能可能不是很高。

    PS。在我的项目中,我们有一个巨大的价目表,其中包含数百万种产品,并且它可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2018-05-18
      • 2016-10-10
      • 2015-12-30
      相关资源
      最近更新 更多