从 MongoDB 迁移到 SQL 时如何处理 ID?

问题描述 投票:0回答:1

我正在将 MongoDB 数据库迁移到 MySQL,我不确定应该如何管理 ID,我仍然需要访问 ObjectID,因为它们被用于打印在标签上的二维码。

第一种明显的想法就是将原始的ObjectID作为ID。这将是最简单的方法,我只关心 MySQL 是否有任何问题或性能受到影响,因为迁移后的新行将是 UUID。

我能想到的另一个解决方案是让他们在迁移时自动生成 UUID,并有一个单独的表将旧的 ObjectID 与新的 UUID 相关联。我可以在查询之前检查我得到的 ID 是 ObjectID 还是 UUID,并确定我是否需要通过该表获取或直接在主表上获取。

第三种解决方案是让一个列保存 ObjectID 并通过它进行索引,但这看起来不正确,因为新添加的行都不会使用它。

这三个中哪个是最好的解决方案?有没有我遗漏的更好的解决方案?

mysql mongodb performance uuid objectid
1个回答
0
投票

如果你的目标是 MySQL(或 MariaDB),每一行都应该有一些在整个表中是唯一的列。这可能是一个 auto_increment、一个 UUID 或一些“自然”键。如果当前的ObjectID是Unique,再加上numeric,string,或者

BINARY
,那大概就没问题了。
PRIMARY KEY
可能有一些大小限制。 由于您当前的 ObjectID 是 12 个字节,因此应该没有问题。如果这是固定大小和“二进制”,请使用
BINARY(12)

暂时保持简单。除非你有数百万或行,否则不要担心性能。 (即便如此,也可能不会出现性能问题。)

© www.soinside.com 2019 - 2024. All rights reserved.