【请教】请教各位前辈何为分片、分库、分表?

各位前辈们晚上好,我想请问一下什么是分片额,是和数据库分库分表一样的概念吗?我感觉很抽象额,无法理解……

阅读 11.8k
1 个回答

分表,是业务逻辑上分的。
如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选择分片,即不同的服务器。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题