› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
yuan93
V2EX  ›  MySQL

想把老系统的数据库表 ID 从自增改为 UUID

  •  
  •   yuan93 ·
    liuzhen9327 · Mar 30, 2017 · 8148 views
    This topic created in 3470 days ago, the information mentioned may be changed or developed.
    RT

    老数据中有逻辑外键关系

    怎么在保留老数据的基础上完成迁移呢

    表还挺多的

    最笨的方法我知道(改 A 表->把引用了 A 表的外键都改了,再改 B 表..依次)

    这样表太多了,整理非常复杂

    有没有更好的实现呢?
    10 replies  •  2017-03-30 17:58:39 +08:00
    cxbig
        1
    cxbig  
       Mar 30, 2017
    数据量?都是一些什么类型的关系?有多复杂?
    我趋向于用某种语言把数据和关系完整的读出来( Eager Loading ),然后在新系统里直接读入。
    ryd994
        2
    ryd994  
       Mar 30, 2017 via Android
    仔细读 UUID 的 RFC ,有一部分前缀是保留的
    前缀加原来的主键就好了
    不建议直接 in place 改,改主键性能可能很差
    写个小脚本一边读一边写另一套服务器
    ryd994
        3
    ryd994  
       Mar 30, 2017 via Android
    外键可以后加
    ytmsdy
        4
    ytmsdy  
       Mar 30, 2017
    就当做一次数据迁移吧,查了一下资料也没有找到很简便的处理方式。
    LZ 看来这体力活是躲不过去了。
    如果有好的方式,请分享下。
    crashX
        5
    crashX  
       Mar 30, 2017
    自增为啥换成 UUID ,有啥优势,理论上 UUID 有可能冲突啊。
    dobs
        6
    dobs  
       Mar 30, 2017 via Android
    uuid 索引排序不是顺序的,还是自增的好吧
    yuan93
        7
    yuan93  
    OP
       Mar 30, 2017 via Android
    @ytmsdy 想好了,已存在的数据的 id 不变,只改数据类型为字符串。
    ytmsdy
        8
    ytmsdy  
       Mar 30, 2017
    @liuzhen 这样处理我觉得主键索引的效率会下降吧。。。。
    ytmsdy
        9
    ytmsdy  
       Mar 30, 2017
    @crashX 这属于非常非常小概率事件,基本上不会发生。就算发生了,主键是唯一的,也保存不了。
    yuan93
        10
    yuan93  
    OP
       Mar 30, 2017
    没测试过,不过同一列的话查 123 的效率和查 ABC 的效率会不同么?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   913 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    ♥ Do have faith in what you're doing.