gpt4 book ai didi

mysql - 在 MySQL 中处理大型数据集

转载 作者:行者123 更新时间:2023-11-29 20:11:40 24 4
gpt4 key购买 nike

我正在寻求一些建议,我们正在创建一个网站跟踪平台(如 Google Analytics),并将处理 1,000,000 行数据。在 MySQL 中使用此功能的最佳方法是什么?

我将跟踪网站访问者,因此网站每天可能有 20/30k 访问量,这些都将保存在数据库中。一旦我们达到 1 年,我们可能会查看超过 1100 万行,而这只是一个帐户。最好为每个网站创建一个数据库表吗?一年后将数据移至该网站的辅助表中?或者有更好的方法吗?

为此添加一些额外的上下文

当用户访问网站时,跟踪软件将获取用户信息和访问的页面并将其保存到数据库中。

此用户信息将根据网站 ID 保存,并包含大约 5-6 个不同的项目,例如浏览器、IP 地址、网站停留时间等...

我认为有两种方法可以做到这一点;

  1. 将数据保存到每个网站的访问表中,这样当添加新网站时,它将被称为 WEBSITEID_visits 等...

  2. 将数据保存到每个月的访问表中,并使用网站 ID 来引用与其相关的网站。

有没有更好的方法来做到这一点,我还应该使用与 MySQL 不同的东西吗?

很抱歉,如果这不是发布此内容的正确位置。

最佳答案

对于数据仓库来说,每隔几秒就一行是相当低的速率。这里有一些提示。

  • 正常化!查看列,确定哪些列有很多重复(浏览器、用户等)。为它们构建标准化表,并将它们的 id 存储到“事实”表中。不要标准化任何“连续”值,例如日期时间。

  • 不要根据时间使用多个表。它会使您的代码变得复杂,但不会带来任何好处。

  • 不要对事实表进行分区,除非您的用例与提到的四个 here 之一相匹配。 .

  • Summarize数据。对一个月的数据运行 COUNT(*)SUM(...) 速度会非常慢。

关于mysql - 在 MySQL 中处理大型数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com