闲杂小记(五)

数据迁移:

部分表主键类型更改:由String改成Long


问题:将String类型修改成Long类型后,如何兼容老用户:

增:直接走心接口即可

删改查:需要提供两个接口,String走老接口 ,Long走新接口


数据库新技能get:

水平拆分:uid/100,拆成100张新表,按uid/100的值把全部数据分这100张新表中

查询表中某varchar类型字段长度:length(pic_path)

条件查询:查询时尽可能把能过滤多的条件放前面


数据库建表技能get:

1.`gender` char(1) NOT NULL,改成:

`gender` tinyint(1) NOT NULL,

2.支持emoji:

`baby_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8mb4_unicode_ci;

3.`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,改成:

`create_time`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,

4.`type` tinyint(4) NOT NULL DEFAULT '0',改成:

`type` tinyint(1) NOT NULL DEFAULT '0',

5.尽量写备注:

`is_deleted` tinyint(1) DEFAULT '0' COMMENT ‘是否删除:0.为删除,1.已删除’,—默认为0


Wiki技能get:

HTTP请求方式(常用):GET  POST  PUT  DELETE

HEADER

PARAM

BODY

RESPONSE

例如:

获取精选影集列表 -- api/v1/album/top

  • 【模式】GET
  • 【HTTP HEADER】
    • Long BP-User-Id -- 用户id
  • 【URL Query参数】
    • Long offset -- 偏移量
    • int limit -- 获取个数
  • 【BODY JSON对应数据类型】无
  • 【返回JSON对应数据类型】WaterFallPage->AlbumDTO

数据迁移知识get:

一般分三步:

1.新接口,新DB

2.数据迁移   

创建中间表,建立老表数据与新表数据的对应

估计数据量:

1.数值(去污点)

2.趋势(去掉与数值污点有关系的趋势污点)比如周三数据是污点,那周二到周三,周三到周四的都是趋势污点

3.兼容老用户


任务:

新表设计:

表结构设计:新增字段,修改已有字段类型,删除无用字段

新接口API设计:

Wiki书写:揪接口添加新版本Wiki,新接口Wiki书写

数据迁移方案:

在一个时间把老表数据一起迁移到新表,之后采用定时任务定时把老表数据迁移到新表




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值