在数据库设计方面,我主要是自学成才。我提出这个问题是因为我已经确定了这种通用结构,但我想知道它是否是最有效的或“行业标准”方法。
我设计的大多数数据库都有一个用户表,然后在另一个表中跟踪人员活动。我知道数据库的美妙之处在于具有这些效率,但是活动表将相当快地从每个定期使用它的用户那里收集许多事件,从而在中等用户使用情况下相当快地成为一个巨大的表。这是让它以这种方式增长的最佳实践吗?或者是一层表,还是根据日期、用户数量或其他原因拆分到不同的表?
+--------------------+ +------------------------+
| UserData | | Activity |
+-=------------------+ +------------------------+
| ID (auto uint) | <--1-to-many-+ | ID (auto uint) |
| UserName (text) | +--> | UserID (uint) |
| Email (text) | | Timestamp (time) |
| additional info... | | Type (ID to elsewhere) |
+--------------------+ | additional info... |
+------------------------+
Run Code Online (Sandbox Code Playgroud)
我只是想知道我可以在哪里改进任何东西,以帮助我学习。
我有一个运行良好的生产 MySQL 5.1 数据库,但我想提高查询性能。我从未使用过分区,只是浏览了手册。
我有两个表涉及列上的复合键:
Bill_Num Bill_Date
我想在 Bill_Date 创建分区。该表包含四年的记录。我想知道一个新的分区表将如何适应未来几年?我还想知道是否需要更改现有查询中的表名并将表名替换为新的分区表名?