垂直拆分
把热点字段和非热点字段拆分到不同的表中
水平拆分
如果查询方式除了id外
有一个
假设这个字段是name,假设分16张表,那么需要4位
生成一个唯一数字,name也生成一个数字,最终的id后4位使用name生成的数字后4位,前n位使用生成的唯一数字
然后这个id对16进行取模,会分布到不同的表中
通过id查询,取后4位,然后对16进行取模,得到相应的表,然后查询这张表
通过name查询.name生成一个数字,取后4位,然后对16进行取模,得到相应的表,然后查询这张表
有多个
建一个映射表(也可以是es之类,写入时候可以是双写,也可以是canal之类的cdc方式同步)
根据不同的字段查询时候,从这个映射表查询到应该去哪个表查,然后再去对应的表查询
网友评论