我们正在将一些数据从 MySQL 迁移到 Mongo,并且一直在向我们的一些数据库表中添加额外字段,以获取迁移数据对象的ObjectId值。
目前我们将它们存储为 varchar(24) latin1_general_ci 可以正常工作。
然而,为了有效的存储/索引,我们可能应该转换回 12 字节的二进制值。不幸的是,MySQL 似乎只支持最多 8 个字节的本机整数。还有另一种选择 - 也许是二进制?
更新:我正在从 MySQL 迁移,但目前只有某些表。所以我首先在某个表的 Mongo 中复制对象。然后我回到 MySQL 中剩下的任何其他表,这些表具有对旧 MySQL 表 ID 的外键引用,并添加一个新的引用字段来存储 Mongo 对象的 ID。然后我将删除原始参考字段 BIGINT。
更新 2:我提出这个问题的原因是,在我们移动其他数据之前可能还要再过 12 个月(或永远不会),所以在此之前它会对实时 Web 应用程序产生性能影响。