一.分区的概念

分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表。另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据库的频繁IO压力值

1.1分区的两种方式

1、水平分区
这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。
举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。(朋奕注:这里具体使用的分区方式我们后面再说,可以先说一点,一定要通过某个属性列来分割,譬如这里使用的列就是年份)
2、垂直分区
这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行。
举个简单例子:一个包含了大text和BLOB列的表,这些text和BLOB列又不经常被访问,这时候就要把这些不经常使用的text和BLOB了划分到另一个分区,在保证它们数据相关性的同时还能提高访问速度。

二.分区分表和分库的区别

分区
就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的
分表
就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。

分库
一旦分表,一个库中的表会越来越多

三.关于数据分片

数据分片技术(sharding)应用于分布式场景下。将不同类别的数据分配到各个子服务器下,应该满足的特点:

1.分布均匀:即每台设备上的数据量尽可能接近
2.负载均衡:即每台设备的请求量尽可能接近
3.扩缩容量是数据的迁移尽可能的小

数据分片一般都是使用Key或Key的哈希值来计算Key的分布,常见的几种数据分片的方法如下:
1.划分号段,比如将key为1-100的数据存储在设备一,100-200的数据存储到设备二,依次划分,缺点是各个号段的热度不一样,会导致负载不均衡
2.取模,取key的hash值,然后根据设备数量取模,得到设备号,将数据存储进相应的设备中,缺点是在扩容时数据的迁移会非常大
3.检索表,在检索表中记录数据与设备间的映射关系,需要时查找检索表就能够找到数据的存储地址,缺点是在数据量大的情况下,检索表也会非常大
4.一致性哈希算法(Consistent Hashing)

数据库分区、分表、分片的区别相关推荐

  1. 分区和分片的区别_Mysql分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看: [root@BlackGhost test]# ls |grep user a ...

  2. 【高级】分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...

  3. 数据库分库分表,分片配置轻松入门!

    上次和大伙聊了 MyCat 的安装,今天来说一个新的话题,就是数据库的分片. 当我们把 MyCat + MySQL 的架构搭建完成之后,接下来面临的一个问题就是,数据库的分片规则:有那么多 MySQL ...

  4. 数据库分库分表中间件对比(很全)

    数据库(分库分表)中间件对比 分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm. 根据一定的规则把数据文件(MYD)和索引文件( ...

  5. 亿级流量网站架构核心技术之“数据库分库分表策略”

    本文节选自<亿级流量网站架构核心技术--跟开涛学搭建高可用高并发系统>一书 张开涛 著 电子工业出版社出版 小编会从留言中选择获赞最多的前五名用户免费送出此书哦!规则见文末. 数据库分库分 ...

  6. 一文搞懂MySQL数据库分库分表

    如果数据量过大,大家一般会分库分表.分库需要注意的内容比较少,但分表需要注意的内容就多了. 工作这几年没遇过数据量特别大的业务,那些过亿的数据,因为索引设置合理,单表性能没有影响,所以实战中一直没用过 ...

  7. 数据库中间件(分表分库路由)

    分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm. 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后的表 ...

  8. MariaDB Spider 数据库分库分表实践 分库分表

    分库分表 一般来说,数据库分库分表,有以下做法: 按哈希分片:根据一条数据的标识计算哈希值,将其分配到特定的数据库引擎中: 按范围分片:根据一条数据的标识(一般是值),将其分配到特定的数据库引擎中: ...

  9. 数据库--分库分表--垂直分表与水平分表

    原文网址:数据库--分库分表--垂直分表与水平分表_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍数据库的分库分表的方案:垂直分表与水平分表. 关系型数据库本身比较容易成为系统瓶颈,单机存储容 ...

  10. 数据库分库分表解决方案

    数据库分库分表解决方案 前言 MySQL表大小限制 分表方案 垂直分表 水平分表 按月分表 MySQL分区表 分库方案 按业务分库 按表分库 拆分后的问题及常见的解决方案 垂直拆分 跨库Join问题 ...

最新文章

  1. 吴恩达邀请9位AI大牛畅想2020:李开复看好医疗教育,LeCun强调自监督学习
  2. 算法应用 ---拆分字符串为n节字符
  3. iOS app 右滑返回
  4. java枚举新特性_java回顾之枚举和新特性
  5. 企业级IM应该帮助员工提高绩效,避免无关的信息干扰
  6. 关于ASP访问ACCESS数据的错误80004005的解决方法
  7. rollup函数 和cube函数 的区别?
  8. Qt setStyleSheet 透明图片叠加
  9. 大白话之One Pixel Attack for Fooling Deep Neural Networks论文讲解
  10. 如何招聘:永远不要自负的人
  11. Python-Django毕业设计汽车站售票管理系统(程序+Lw)
  12. 免费阅读正在杀死腾讯阅文?
  13. 免费Zblog站群采集管理插件工具
  14. 如何评估服务器基础性能 - CPU负载、使用率、内存磁盘使用率、网络带宽......
  15. php正则匹配preg_match,php正则表达式中preg_match函数的详解
  16. Linux如何连接到WIFI网络
  17. 基于jeecgboot的支持flowable的排它网关之后的会签功能(二)
  18. 分享4个不为人知的高质量APP,每一个都实力爆棚!
  19. ST-Link V2驱动下载:
  20. js获取一年前的时间,几个月前的今天

热门文章

  1. [shader]灯光遮罩(水纹,散焦等)
  2. 【quartus-Modelsim仿真问题】Error: (vsim-3170) Could not find .../modelsim/rtl_work.adder8_vhd_tst
  3. java object isempty,Java JsonObject.isEmpty方法代码示例
  4. 骨干网络之DenseNet:Densely Connected Convolutional Networks论文学习
  5. 量化交易陷阱和R语言改进股票配对交易策略分析中国股市投资组合
  6. 单臂路由与三层交换机
  7. CentOS7 Samba服务器配置
  8. 对口单招计算机理论怎么背,计算机专业对口单招理论.doc
  9. java excel 数组_Java将Excel解析为数组集合
  10. ABC084-C-Special Trains