gpt4 book ai didi

MySQL 根据用户和时间戳日期范围进行分区

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

我的应用程序有大量用户,其事件表上的统计数据有数百万行 - 关于销售流量的高流量网站 = 数据增长令人难以置信。用户事件表中还有一个时间戳列。您是否建议根据时间戳按年分区和按月子分区?更好的是,我认为按月然后按天可能会更好。大多数检查是针对今天、昨天、过去 7 天、过去 30 天或本月或上个月的时间戳。如果用户想按天或按月检查今年的统计数据,是否存在性能问题?访问的详细信息有时会变得巨大,而且加载速度似乎很慢。我提到的分区方式会有帮助吗?在每个查询中,都会检查时间戳在 X 和 Y 之间的位置。或者可能按用户 ID 进行分区?根据我对数据库分区的了解,我认为按日期进行分区是最好的,并且可能会提高性能。要分区,我需要将时间戳列添加到主索引。也许仅此一点就能提高性能。我真的想问,因为表很大,这些操作会花费大量时间、锁定、等待...也许,通过分区,让 MySQL 根据时间戳范围检查特定分区,可能会进一步提高性能?服务器版本:10.1.41-MariaDB-1~bionic - mariadb.org 二进制发行版。最好只包含一个“ future ”分区?有什么方法可以让它使用像 MONTH(timestamp) 这样的函数自动创建“ future ”分区,然后为子分区 DAY(timestamp) 创建“ future ”分区?听起来已经像是超大型存储过程了。只是更好地了解分区。谢谢!

最佳答案

分区本身并不提供性能

PARTITION 在极少数用例中可以提供帮助。一种是根据时间戳/日期时间删除“旧”数据。但我没听说你需要那个?

请提供您现在拥有的CREATE TABLE,以及您需要运行的主要查询。一些索引技术可能会有所帮助。或者一些汇总表。

http://mysql.rjweb.org/doc.php/partitionmaint
http://mysql.rjweb.org/doc.php/index_cookbook_mysql
http://mysql.rjweb.org/doc.php/summarytables

关于MySQL 根据用户和时间戳日期范围进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58703302/

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