赞
踩
线上停机,此时源库没有数据的变化,将之前写好的导数的工具跑起来,将源库的数据读出来通过分库分表中间件分发到分库分表中去,导入完成之后就ok了,此时就可以修改数据源的配置以及sql之类的改变在上线。
在线上系统里面,把所有增删改相关的操作,除了对老库增删改意外,对分库分表也同步执行增删改操作,同时写两库,系统部署玩以后使用之前的倒数工具,把旧数据读入到分库分表中,同时需要用最后更新时间作为条件,不可以旧数据覆盖新数据,导一轮之后,对新旧数据作对比,如果存在不同的数据,就在执行第二轮,直到所有数据都相等了,再重新部署。
实现是当用户插入的时候,先往一个数据库一张表插入一条没有意义的数据,此时会生成一个自增ID,拿到这个ID后在作为主键放入分库分表数据库写入。这个方案的优点就是简单,但是单库生成自增ID是瓶颈。只是用低并发但数据库数据量很大需要分库分表的情况下。
基于UUID生成,UUID.randomUUID().toString().replace(“-”, “”) ,不适合做主键,因为UUID生成的太长了,影响SQL性能,只能用于比如零时文件名之类的。
就是获取当前时间,但是在高并发情况下,存在相等的情况,所以不适合高并发,一半是将这个字段同其他字段拼接起来代表业务含义才使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。