为什么要分库分表:
分库:让当前库中,不要有太多表的数量
分表:让当前表中,不要有太多的数据
订单分库分表的方案:
按钱分、按地域、按下单时间、按仓库、按收货人地址、按vip级别分
//按地域
通过用户id 查询用户下的所有订单
uid -> phone -> webservice -> 所属地 -> 库、表
通过订单号查询订单详情 aaaaabbbbb
//按下单时间 - 通过年分库 通过月分表
通过用户id 查询用户下的所有订单 ???
通过订单号查询订单详情 - 时间设计到订单号
//-------按用户id-------
//10个库 每个库10个订单表
//设计:库hash 表hash
//下单:uid(后5位) -> 库hash -> 下标(2)-> database_2
// uid(后5位) -> 表hash -> 下标(5)-> orders_5
通过用户id 查询用户下的所有订单 - 不会出现跨库跨表的问题
通过订单号查询订单详情 -> 订单号(用户id) 当前时间(毫秒) + uid
redis incr 1 20位
唯一性
安全性
缺点:可能不够散列