前面介绍了数据优化最常用的技术—使用索引,但是当数据达到千万级别时就需要使用另外一种优化方式分表优化!!
1.一般情况下,能不分就不分;
2.分表有两种:水平,垂直
2.1.水平分表:相当于复制多张表
举例:有1000万条数据,分10个表,那么每个表只存100万条数据,这10个表字段,属性等是一样的
2.2.可以使用sql语句+判断条件进行控制
举例:这里有3张表:user1,user2,user3,我们向表中添加数据实例如下
if( id%2=0){
insert into user1(id,name,sex) value(1,“张三”,“男”);
}else if( id%2=1){
insert into user2(id,name,sex) value(1,“张三”,“男”);
}else{
insert into user3(id,name,sex) value(1,“张三”,“男”);
}
同理查询数据也可以根据条件查询
2.2.垂直分表:相当于将一张表字段,拆分好几个字段,重新组成一张表
举例:这里有一张表,公有10个字段,可以拆分为3+3+4,从而组成三张新子表
3.目前对于一般企业百万级数据索引可以满足需求,如有特殊需求可以考虑分库分表操作
扩展:除了添加索引,分库分表,还有主从同步(读写分离),缓存技术
1.索引,分库分表实现起来相对方便
2.主从同步,使用缓存技术需要借助第三方插件,并且需要配置一系列文件
3.常用的缓存技术有:
(1)hibernate二级缓存,该缓存不能完成分布式缓存
(2)redis(memcahe等)来作为中央缓存,对缓存的数据进行集中处理