首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问日志数据库的分区

问访问日志数据库的分区
EN

Database Administration用户
提问于 2015-05-31 13:50:27
回答 2查看 69关注 0票数 0

我已经设置了一个表来记录访问者的每一个页面视图。这将导致一个每周大约有5万条条目的表格。

为了保持事务的可管理性和良好的性能,我打算每周或每个月将表的内容转移到存档中。

我有几个问题,第一个问题是多长时间移动内容是否明智?

第二,移动内容的最佳方式是什么?

这是一个mysql数据库,表有11列,大多数是int或varchar,平均80个字符。

当涉及到存档时,应该是一系列表,还是再次拆分,但可能在较小的程度上?

EN

回答 2

Database Administration用户

发布于 2015-06-01 09:10:15

至于每隔多久,我会说,这完全取决于你的情况。例如,您需要访问多少数据,有多少磁盘空间,需要多久才能访问。

对于类似的数据,我在这里有一个类似的过程,我按月对其进行分区,然后在每个月开始时,我只需安排一个运行和删除最古老的分区的事件,并创建一个新的事件。这是快速和简单的,并保持相对恒定的磁盘空间。根据您当前的表结构,这可能很容易,也可能不是那么容易。

如果您想保存这些数据,您只需在本月初将一个新的分区添加到顶部,创建一个仍然可搜索但作为单个文件保存在系统上的大型表。如果您使用的是MySQL 5.6,您甚至可以按分区进行选择(一个好的索引也会有所帮助)。

类似的讨论请参见如何分割MySQL表文件?。

另一个选项,如果您想要保持可访问性,(我在另一个系统中也这样做)是在月初简单地运行一个计划好的事件来创建一个新的空表(CREATE TABLE tablename LIKE...,并重命名旧的表,例如tablename_201505 )。我还对另一个表进行了维护,以跟踪每个表中的月份数据,以便于应用程序参考。

票数 0
EN

Database Administration用户

发布于 2015-06-07 21:59:15

它对PARTITION来说相当小,但是使用分区和“可传输表空间”,归档可以非常简单和高效。嗯,也许比使用慢速SELECTs和DELETEs更复杂。

使用InnoDB,至少5.6,并按范围分区,具有每日或每周的粒度。

许多细节都是在我的博客中列出的。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/102895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档