数据库数据量达到亿级的处理方案猜想

一、分库分表

1、分库这里就不展开说了

2、关于分表

[1] 分表应该分两种情况,第一种是横向分表

也就是对表横切,按照数据量进行拆分。
到达何种数据量进行拆分呢?这个看业务区分。

[2]第二种情况是纵向分表

也就是拆分字段,比如一张表有N个字段,可以根据业务,分成N/M块,这样单张表的数据会少一些

3、针对横向分表展开说

[1]按批次分表

新建一张表,复制原有表的全部字段以及数据,重命名如:op_log重命名为:op_log_2019back
然后清空原有表,所有的数据进入op_log。

[2]按时间分表

对所有的数据,按照数据生成年份或月份拆分成多个表,然后在所有的查询中,都根据请求的数据时间,计算目标数据库,然后查询相关数据的数据。

[2.1]【待实践】自动生成表

思路如下:
一条新的数据过来,判断该数据,是否有目标数据库(这个判断可以将已有的数据库,写在redis或内存中),如果不存在数据库,系统自动生成数据库,然后再插入数据

二、数据库分区

相关方法可以上网查,这里不展开说

你可能感兴趣的:(SQL)