• 数据库的分区、分表、分库、分片的简介


    分区的概念

            数据分区是一种物理数据库的设计技术,它的目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。

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

    1、相对于单个文件系统或是硬盘,分区可以存储更多的数据;

    2、数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可;

    3、精准定位分区查询数据,不需要全表扫描查询,大大提高数据检索效率;

    4、可跨多个分区磁盘查询,来提高查询的吞吐量;

    5、在涉及聚合函数查询时,可以很容易进行数据的合并;

    一、什么是分区、分表、分库

    分区

    就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的

    1、水平分区

    这种形式分区是对表的行进行分区,通过这样的方式不同分组里面的物理列分割的数据集得以组合,从而进行个体分割(单分区)或集体分割(1个或多个分区)。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。

    2、垂直分区

    这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行。
    举个简单例子:一个包含了大text和BLOB列的表,这些text和BLOB列又不经常被访问,这时候就要把这些不经常使用的text和BLOB了划分到另一个分区,在保证它们数据相关性的同时还能提高访问速度。
    在数据库供应商开始在他们的数据库引擎中建立分区(主要是水平分区)时,DBA和建模者必须设计好表的物理分区结构,不要保存冗余的数据(不同表中同时都包含父表中的数据)或相互联结成一个逻辑父对象(通常是视图)。这种做法会使水平分区的大部分功能失效,有时候也会对垂直分区产生影响。

    分表

    就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。

    分库

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

    什么时候考虑使用分区?

      • 一张表的查询速度已经慢到影响使用的时候。

      • sql经过优化

      • 数据量大

      • 表中的数据是分段的
      • 对数据的操作往往只涉及一部分数据,而不是所有的数据

      • 分区解决的问题

        主要可以提升查询效率

      • 什么时候考虑分表?

        • 一张表的查询速度已经慢到影响使用的时候。

        • sql经过优化

        • 数据量大
        • 当频繁插入或者联合查询时,速度变慢

        分表解决的问题

        分表后,单表的并发能力提高了,磁盘I/O性能也提高了,写操作效率提高了

        • 查询一次的时间短了
        • 数据分布在不同的文件,磁盘I/O性能提高
        • 读写锁影响的数据量变小
        • 插入数据库需要重新建立索引的数据减少
          • 什么是分片


            简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。 
            数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。

            (1)一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切分可以称之为数据的垂直(纵向)切分


            (2)另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。

  • 相关阅读:
    iOS上传AppStore被拒原因及处理方案
    记录一个打包upload时报错处理
    Git撤销merge
    设置UIButton上面是image,下面是title
    Sourcetree中切换到其他分支,临时分支的这次提交丢失
    修改字符串指定范围的颜色
    定时消失的Alert弹窗
    ALAsset 将资源转换为 NSData
    textField和textView的输入字数最大限制
    手机号码正则判断
  • 原文地址:https://www.cnblogs.com/Army-Knife/p/10582488.html
Copyright © 2020-2023  润新知