小编Jar*_*ede的帖子

日志表的MySQL表设计

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

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

现在我在想我们的数据库结构的设计不太适合这个。因此,如果我们每年有 12 张桌子,我们将不得不继续建立庞大的工会来获得所有这些桌子。因此,这样做会更好:

tbl_sessions: -这是被写入所有的时间活动表,索引,例如关于用户IDACCOUNTID。这将只包含当前月份的记录。

tbl_old_sessions : - 这将取代月表,成为一个包含所有前几个月记录的巨型表。进行分配一个月(由NOW()人口将DateField)和索引的ACCOUNTID用户ID

这种设计是否比我之前的月度表更有意义?如果按实际日期进行的查询很少,我是否应该担心对 tbl_old_sessions 进行分区?

mysql index database-design partitioning

5
推荐指数
1
解决办法
660
查看次数

标签 统计

database-design ×1

index ×1

mysql ×1

partitioning ×1