- peiwo_common: 存储应用通用数据,存储user的shard数据,存储部分跨用户的数据
- peiwo_shard#{1,2,3,4}系列: 主要存储用户数据,以uid分库。存储部分跨用户的数据
- pw_shard
| column | 说明 |
|---|---|
| id | shard_id |
| weight | 权重 |
- pw_user_shard
| column | 说明 |
|---|---|
| uid | pw_user表里的uid,用于shard的key |
| shard_id | 此uid所属的shard |
- pw_captcha
存储在common的好处是方便查询,后期partition
- pw_contact
- pw_contact_request
- pw_contact_note
- pw_payment
- pw_message
- pw_block
- pw_user
- pw_event
- pw_dialog
- pw_push
- pw_iap_error
- pw_withdraw
- pw_task
- pw_call_ledger
- 查找pw_shard表,按权重随机选择shard_id
- 将(uid, shard_id)写入pw_user_shard表或redis
- 按查找的数据类别,去common或者shard里面查找
- 查找pw_user_shard表或redis
- 去peiwo_shard#{shard_id}数据库里面查找数据
- peiwo_common指向当前的peiwo-0的sneaky数据库
- peiwo_shard1指向当前的peiwo-0的sneaky数据库
- peiwo-1上新建数据库sneaky,peiwo_shard2指向该数据库
- peiwo-2上新建数据库sneaky,peiwo_shard3指向该数据库
- peiwo_common里建表pw_shard, 插入(1, 0), (2, 50), (3,50)
- peiwo_common里建表pw_user_shard,将当前所有用户的shard_id设为1插入pw_user_shard中