第四个问题: 一张表中有都有50亿条数据了, 这个时候该咋办?
超过1000W一张表就要做分表了
建表:
就是比如user_01,user_02…
假设创建了n张同样的表;
如何做crud?
在redis中保存一个id,每次插入一条数据,就自增;
每次插入数据之间,先取出id,然后
id%n = 0,1,...,n-1
根据取模的值选取到编号为x的表。
然后把新数据插入到 user_x
id%1000 = 0···1
这个1000是表的数量
开始时建立10张表, 这个就是 id%10
开始时建立100表,这个就是 id%100
那怎么查询呢?
select column_01 from table_01 where =xxx
update table table_01 set column_01=xxx where column_01=yyy
delete * from table_01 where column_03 like '%abc%'
都要写循环。
都要循环,执行效率的问题, 不是非常的低下吗?
本来只有一条查询语句的, 如果有100张表, 现在要用100条查询语句。
本来一个事务执行一个语句就行了
现在事务要执行100条语句。
结论:这样分表查询效率是很低的。