分表、分区简单介绍(摘录)
分表,是业务逻辑上分的。
如userid,name,addr一个表,为了防止表过大,分成2个表。
userid,name
userid,addr
分区: 对业务透明,在物理实现上分成多个表,逻辑上还是一个表。
如orderid,userid,ordertime,.....
ordertime<2015-01-01 #p0
ordertime<2015-04-01 #p1
ordertime<2015-07-01 #p2
ordertime<2015-10-01 #p3
ordertime<2016-01-01 #p4
按照时间分区。大部分只查询最近的订单数据,那么大部分只访问一个分区,比整个表小多了,数据库可以更加好的缓存,性能也提高了。这个是数据库分的,应用程序透明,无需修改。
分片,业务透明,在物理实现上分成多个服务器,不同的分片在不同服务器上。分区可以把表分到不同的硬盘上,但不能分配到不同服务器上。一台机器的性能是有限制的,用分片可以解决单台服务器性能不够,或者成本过高问题。
当分区之后,表还是很大,处理不过来,这时候可以用分片。
orderid,userid,ordertime,.....
userid%4=0,用分片1
userid%4=1,用分片2
userid%4=2, 用分片3
userid%4=3,用分片4
上面这个就是一个简单的分片路由,根据userid选择分片,即不同的服务器。
本作品采用《CC 协议》,转载必须注明作者和本文链接