【问题标题】:Migrating from MongoDB to MySQL从 MongoDB 迁移到 MySQL
【发布时间】:2014-08-21 01:21:03
【问题描述】:

我们正在将 mongodb 迁移到 MySQL。我们的大多数客户端应用程序和基础设施都使用 24 个字符的 mongo id 对象。我现在正在寻找一种可以在 SQL 中生成类似的唯一字符串的方法。

我已经阅读了有关该主题的内容,并且一些帖子表明不可能在 sql 中获得相同的 mongo id。

我知道 MongoID 包括: [4 字节秒数,3 字节机器哈希,2 字节进程 ID,3 字节计数器]

我正在考虑编写一个名为 get_mongo_id() 的 MySql 函数,它将返回以下内容:

LEFT(SHA2(UUID(),256),24)

但我担心它仍然会导致重复,因为我只使用了 64 个字符 HASH 中的第一个 24 个字符。

以前有没有人遇到过类似的问题?任何建议将不胜感激。

【问题讨论】:

  • 嗯,mongo id 是一个 12byte/96bit 的值。如果您使用 auto_increment bigint (8byte/64bit),mysql 将礼貌地跳过 db 中已经存在的任何值。当然,您必须将 mongoids 减少到 64bit 以适合该 bigint 字段,以便您可以使用 auto_increment .
  • @Conrad 也许跑题了,但我很想知道离开 MongoDB 的主要原因?
  • 主要原因是关系数据。在 mongo 中很难管理。
  • 数据是否需要重新移植到 mongo?如果不是,那么只需使用自动增量整数,或者如果您真的很自虐,则使用 uuid。

标签: php mysql sql mongodb


【解决方案1】:

您可以做的是将字符串作为主键并将其迁移过来。一切都应该是一样的,因为 MySQL 可以处理这个问题。你害怕存储问题吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多