作家
登录

如何从MongoDB迁移到MySQL?这有现成经验!

作者: 来源: 2017-10-20 11:05:20 阅读 我要评论

false 
  •  
  • t.string :uuid, nullfalse 
  •  
  • t.timestamps nullfalse 
  •  
  • end 
  •  
  • add_index :posts, :uuid, uniquetrue 
  •  
  • end 
  •  
  • end  
  • 测试的重要性

    在真正对线上的办事进行停机迁徙之前,我们其实须要对数据库已有的数据进行部分和全量测试,在朝分测试阶段,我们可以在本地预备一个数据量为临盆情况数据量 1/10 或者 1/100 的 MongoDB 数据库,经由过程在本地模仿 MongoDB 和 MySQL 的情况进行预迁徙,确保我们可以或许尽快地发明迁徙脚本中的缺点。

    预备测试数据库的办法是经由过程关系删除一些重要模型的数据行,在删除时可以经由过程 MongoDB 中的 dependent: :destroy 删除相干的模型,如许可以尽可能的包管数据的一致性和完全性,然则在对线上数据库进行迁徙之前,我们依然须要对 MongoDB 中的全部数据进行全量的迁徙测试,如许可以发明一些加倍隐蔽的问题,包管真正上线时可以出现更少的状况。

    数据库的迁徙其实也属于重构,在进行 MongoDB 的数据库迁徙之前必定要包管项目有着完美的测试体系和测试用例,如许才能让我们在项目重构之后,肯定不会出现我们难以预燎9依υ?题,全部项目才是可控的,如不雅工程中没有足够的测试甚至没有测试,那么就不要再说重构这件工作了 – 单位测试是重构的基本。

    总结

    除此之外,MongoDB 和 MySQL 之间的选择也不必定长短此即彼,我们将项目中的大年夜部分数据都迁徙到了 MySQL 中,然则将一部分用于计算和分析的数据留在了 MongoDB,如许就可以包管 MongoDB 宕机之后仍然不会影响项目标重要义务,同时,MySQL 的备份和恢复速度也会因为数据库变小而异常敏捷。

    最后一点,测试真的很重要,如不雅没有测试,没有人可以或许做到在修改大年夜量的营业代码的过程中不损掉任何的营业逻辑,甚至如不雅没有测试,很多营业逻辑可能在开辟的那一天就已经损掉了。

    【编辑推荐】

    1. MySQL主大年夜复制的常用拓扑构造
    2. 详解MySQL基准测试和sysbench对象
    3. MySQL中须要推敲的一些对象
    4. 浅谈MySQL数据库的Web安然问题
    5. 若何排查MySQL履行逝世锁原因
    【义务编辑:庞桂玉 TEL:(010)68476606】

      推荐阅读

      如何选择硬盘:SSD硬盘vsHDD硬盘

    总之,HDD硬盘和SSD硬盘各有本身的市场。而兼具SSD硬盘和HDD硬盘的机能和特点的mSATASSD设备和混淆驱动器是花费者寻求分砂茨?的更浩揭捉?择。 沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的>>>详细阅读


    本文标题:如何从MongoDB迁移到MySQL?这有现成经验!

    地址:http://www.17bianji.com/lsqh/38066.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)