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