首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测井表的MySQL表设计

测井表的MySQL表设计
EN

Database Administration用户
提问于 2012-10-19 13:35:46
回答 1查看 797关注 0票数 5

无论如何,我不是DBA,但我对数据库光学化的一些基本原则有基本的理解。

目前,我们有一个记录会话数据的表,它每月写入大约120万行。在每个月的开始,我们将上个月的行分开,并将它们移动到一个名为"tbl_session_mm_yyyy“的表中。我们希望开始查询活动表和旧表,并提取上一次登录之类的详细信息(简单的sql查询,从tbl_live中选择maxdate,其中accountid = 123,union,从tbl_old等)。

现在,我认为我们的数据库结构的设计不太适合这一点。因此,我们每年有12张桌子,每年,我们都要继续建立庞大的工会来获得所有这些表格。因此,最好这样做:

tbl_sessions:-这是一直被写入的活动表,是用户is、帐户之类的索引。这将永远只包含当前月份的记录。

tbl_old_sessions:-这将取代月表,成为一个包含所有前几个月记录的巨大表。按月进行分区(在now()之前填充的datefield上),并在accountid、userid等上进行索引

这个设计比我以前的月表更有意义吗?如果我在实际日期之前很少进行查询,那么我应该担心tbl_old_sessions的分区吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-10-19 16:17:09

您的新设计将使跨所有表的查询变得更容易,而无需知道在编写查询时合并哪些表。

我不确定您是否需要担心分区方面。这听起来不错,但我从来没有用过这样的比例(不是在MySQL中)。

如果您担心分区,您可以继续使用当前的解决方案,但是不需要为每个year+month创建一个新表,而是有12个表,每个月一个表,用于所有年份。至少你们的工会是固定不变的。

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

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

复制
相关文章

相似问题

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