Mysql - 约会表的最佳主键

时间:2016-09-15 11:29:55

标签: mysql sql database-design

我不是SQL方面的专家,我需要询问有关设置包含约会的表的最佳方法的建议。 我怀疑是关键。

我的想法是:

1 - 使用自动增量列作为约会的ID(例如无符号整数)。 我对这个解决方案的疑虑是:即使指数非常高,指数也可以达到溢出,当记录数量增长时,性能会降低吗?

2 - 每年创建一个表格。 Dubts:保持和执行查询会很复杂。

3 - 使用复合索引。 Dubts:怎么设置

4-其他?

感谢。

2 个答案:

答案 0 :(得分:0)

使用自动增量主键。在整数溢出之前,MySQL将无法处理增长的表。

即使你没有主键,MySQL的性能也会下降。这时您将开始考虑分区(您的选项2)和归档旧数据。但从一开始,单个表上的自动增量主键就可以了。

答案 1 :(得分:0)

1 - 你认为你会超过40亿行吗?如果您没有适合您的查询的索引,性能会降低,因为表格大小,。 (好吧,有一点点退化,但不值得担心。)基于182K /年,MEDIUMINT UNSIGNED(最多16M)就足够了。

2 - 不!这是一个常见的问题;答案永远是"不要创建相同的表"。

3 - 表的哪一列或哪些列组合是唯一的?只需在PRIMARY KEY (...)

中列出它们即可

通常首选3号。如果没有唯一列,请使用数字1。

每年182K行不能证明PARTITIONing。如果您期望超过一百万行,请考虑它。 (这里有一个简单的预测:你重新设计这个模式,然后182K增长到一百万。)