gpt4 book ai didi

mysql - 用于统计存储的大规模 MySQL 数据库 - 您有什么推荐?

转载 作者:行者123 更新时间:2023-11-29 06:10:19 27 4
gpt4 key购买 nike

我现在正在忙的一个项目需要许多不同类型的统计数据,最显着的是特定时间段内产品详细信息页面的访问/查看次数。这当然需要将每次访问存储在表中,例如

id | Visit_date(这将是一个 UNIX_TIMESTAMP())|产品 ID | ip_address(用于与国家/地区相关的统计信息)

通过这种方式,可以针对每个产品和选定的时间范围(使用 MaxMind GeoIP 等数据库)生成每个城市/国家的统计数据。

唯一的问题是这个表很快就会填满数百万条记录。关于我应该如何以最有效的方式解决这个问题有什么建议吗?

最佳答案

这里有一些建议:

  • 按范围分区 http://dev.mysql.com/doc/refman/5.1/en/partitioning-range.html
  • 将访问日期设为 INT/BIGINT。在这种情况下使用 TIMESTAMP,因为有 mysql 函数可以使用它,并且该数据类型占据相同的位置。然而,DATETIME 使用更多空间,因为它不限于 1970-01-01 ...
  • 删除旧记录(例如 2 天前的记录)并将其汇总到另一个表中。
  • 也许您可以在此表上使用 MEMORY 存储引擎,该引擎速度更快,因为它不会写入硬盘
  • 也许您可以使用 memcached 作为 MEMORY 存储的替代品
  • 不要使用 MyISAM,使用 InnoDB。
  • 例如使用以下内容调整您的 my.cnf:http://tools.percona.com/wizard (请注意,这不是一件非常微不足道的事情,您可以阅读有关这方面的书籍)
  • 明智地使用索引。

希望这有帮助。

关于mysql - 用于统计存储的大规模 MySQL 数据库 - 您有什么推荐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464652/

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