数据库中如何实现分库分表-创新互联

这篇文章将为大家详细讲解有关数据库中如何实现分库分表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

成都创新互联公司专注于企业全网整合营销推广、网站重做改版、亭湖网站定制设计、自适应品牌网站建设、HTML5建站商城网站制作、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为亭湖等各大城市提供网站开发制作服务。

分片是解决数据库存储容量限制的直接途径。分片包括垂直分片与水平分片两种方式。

垂直分片

垂直分片又叫纵向分割,即以逻辑表为单位,把原有数据库切分成多个数据库。切分后不同的表存储在不同的数据库上。

垂直分片与业务架构设计有密切的联系。比如从业务领域对系统进行架构优化,分成多个子业务系统,各个子业务系统耦合度较低。子业务系统间以接口方式进行数据通信和数据交换。

垂直拆分后业务清晰,拆分规则明确,系统之间容易整合与扩展。一般用于数据库上层架构设计。

数据库中如何实现分库分表
图1
垂直分片示意图 

水平分片

水平分片又叫横向分割,即以逻辑表中的数据行记录为单位,把原有逻辑数据库切分成多个物理数据库分片,表数据记录分布存储在各个分片上。

水平分片主要用业务架构无法继续细分,而数据库中单张表数据量太大,查询性能下降的场景。通过水平分片,即解决单库容量问题,同时提高并发查询性能。


数据库中如何实现分库分表

图2水平分片示意图 

DDM实现了自动水平分片,应用无需关心某个数据该存储在哪一块分片上。

对逻辑表水平分片需要依据一定的分片规则,例如一个订单跟踪系统,我们选取订单号(OrderId)作为拆分键,分别对“订单流水表”、“订单详情表”以及“物流跟踪表”进行水平拆分,拆分规则为对键值Hash后求模,则分片计算规则如下:

H(Key(OrderId)) = Hash(Key(OrderId))%N

其中,N表示一共有N个数据分片,H(Key(OrderId))表示该订单经过订单号Hash并求模后存储的分片编号。

数据库中如何实现分库分表

图3分片后数据存储示意图 

关于“数据库中如何实现分库分表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


当前名称:数据库中如何实现分库分表-创新互联
网页链接:http://hbruida.cn/article/cccpjc.html