[转载]数据库sharding、partition

zz from http://www.chinadba.com/?p=87 
  

sharding与partition有着千丝万缕的联系,它们所采取的技术本质上是非常类似的,可以说sharding的概念就是由partition而来。但是二者还是有区别的。

partiton是数据库对象级别的处理,由数据库软件来实现,但是还是单个数据库内的操作(强调单物理机器);

sharding是从数据库的前端(db proxy或者业务上)来进行的,sharding是能跨库的甚至能跨越物理机器的,sharding与业务结合的更为紧密(强调放到不同物理机器上)。

不管是sharding还是partition都有垂直和水平两个扩展方向。

 

 

 

MySQL partition:数据库中的数据以文件的形式存在于磁盘上,拿MYISAM来举例,一张表主要对应着三个文件,一个是frm存放表结构的,一个是MYD存放表数据的,一个是MYI 存表索引的。如果一张表的数据量太大的话,那么MYD,MYI就会变的很大,查找数据就会变的很慢,这个时候我们可以利用MySQL的partition功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。

posted on 2017-05-26 15:12  daition  阅读(197)  评论(0编辑  收藏  举报

导航