我正在将MongoDB数据库迁移到MySQL,我不确定我应该如何管理ID,我仍然需要访问ObjectID,因为它们被用于打印在标签中的QR码。
第一种明显的想法是只使用原始的ObjectID作为ID。这是最简单的方法,我只关心MySQL是否有任何问题或性能问题,因为迁移后的新行将是UUID。
我能想到的另一个解决方案是让它们在迁移时自动生成UUID,并有一个单独的表将旧的ObjectID与新的UUID相关联。我可以在执行查询之前检查我获取的ID是ObjectID还是UUID,并确定是否需要通过此表或直接在主表上获取。
第三种解决方案是用一个列保存ObjectID并通过它建立索引,但这看起来不正确,因为新添加的行都不会使用它。
这三个中哪一个是最好的解决方案?我是否遗漏了更好的解决方案?
1条答案
按热度按时间7gcisfzg1#
如果你的目标是MySQL(或MariaDB),每行都应该有一些列在整个表中是唯一的。这可以是auto_increment,UUID或一些“自然”键。如果当前ObjectID是唯一的,加上数字,字符串或
BINARY
,那么它可能是好的。PRIMARY KEY
可能有一些大小限制。由于您当前的ObjectID是12字节,应该没有问题。如果是固定大小和“二进制”,使用BINARY(12)
。现在保持简单。不要担心性能,除非你有数百万或行。(即使这样,也可能没有性能问题。)