分区表

1、什么是分区表

        分区表是一个逻辑表,但底层是由多个物理子表组成的,分区表的实现其实是对一组底层表的句柄对象的封装,对分区表的请求都通过句柄对象转化为对存储引擎的接口调用,分区对于sql层来说是一个完全封装的黑盒子,但其实底层每一个分区都有一个使用#分割命名的表文件。

2、分区表和分表的区别

      (1)概念上的区别:

        分表:是通过一定的规则,将一张表分解为N张不同的表,再物理层面也是多张表;

        分区:逻辑上是一张表,只是把一张表分成了N多个物理区块,这些区块可以在同一个磁盘、也可以在不同的磁盘。

      (2)实现方式上的区别

            每一张表都对应了3个文件:一个.MYD数据文件、一个.MYI索引文件、一个.FRM表结构文件

            分表:mysql的分表是物理上的分表,每一个小表都是完整的一张小表,都对应3个文件;

            分区:分区后还是一张表,但是存放的数据的区块变多了;分区后根据一定的规则把数据文件和索引文件进行了分割,还多出一个.par文件,该文件记录了这张表的分区信息;

      (3)数据处理上

            分区:只是把存放数据的文件分成了许多小块;

    (4)提高性能上

            分表:分表后,单表的并发能力提高了,磁盘IO性能更高了,为什么能够提高并发呢?因为查询一次花的时间变短了,如果出现并发,可以把压力分个不同的子表;磁盘IO为什么高了呢?因为本来  把一个非常大的数据文件也分摊到了各个小表的数据文件上了。

          分区:重点是想突破磁盘io瓶颈,想提高磁盘读写的能力来增加mysql的性能;在这一点上分区和分表的侧重点不同,分表重点是存取数据时提高mysql的并发能力(因为压力都分散到了不同的表上,而且查询性能高、时间短了);而分区重点是突破磁盘的读写能力(因为数据在物理上被分为了多个小块来存储,读写时只需要读取那一小块即可)。

分表和分区不矛盾,可以相互配合的,对于那些大访问量,并且表数据比较多的表,我们可以采取分表和分区结合的方式;访问量不大,但是表数据很多的表,我们可以采取分区的方式。

  3、分区表的好处

      (1)分区表把数据存放在不同的物理区块上,提高了磁盘io性能;

      (2)可优化查询,在where语句中包含分区条件时,可以只扫描一个或多个分区表来提高查询效率,涉及sum、count语句时,也可以在多个分区上并行处理,最好再汇总;

      (3)分区更易维护,如:批量删除大量数据可以清楚整个分区;

      (4)使用分区可避免某些特殊的瓶颈,如InnoDB的单个索引的互斥访问等。

       (5)并行处理性能更高。

  4、分区表的限制

      (1)一个表最多只能有1024个分区;

      (2)分区字段要么不包含主键或者索引列,要么包含全部主键和索引列;‘

      (3)不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区。

5、mysql支持的分区类型

    (1)range分区:根据数值的区间范围分区,分区的区间范围值是顺序的,且不能重叠;分区键的值如果有null,将被作为最小值来处理;插入的值不再现有分区内会报错,所以要预估现有分区,及时新增新的分区。

    (2)list分区:按照list中的值分区,partition p0 values in (3,5);值为3和5的在一个分区;分区值不需要按照顺序,插入的值不再list范围内会报错;null值必须在分区列表中否则不被接受

    (3)hash分区:主要用于分散热点读,确保数据在预先确定个数的分区中尽可能平均分布,null值被当作0值处理;分为常规hash分区:

        常规hash分区:使用取模算法,优点是数据均匀分布,缺点是不适合经常变动的需求,比如数据量增大后由mod(n,4)变为mod(n,6),这样大部分数据就需要重新计算分区,线下hash分区很好的解决了这个问题。

          线性分区:分区函数是一个线性的2的幂的运算法则

    (4)columns分区:在mysql5.5中引入,解决了range分区和list分区值只支持整数的问题,columns分区可细分为range columns分区和list columns分区,他们都支持整数、日期时间、字符串三大类型,也可支持多列分区

    (4)key分区:以上几种分区都要求分区键必须是int类型的,或者表达式返回int类型,但是key分区可以使用其他类型的列(blob、text类型)

6、什么时候使用分区表

数据量达到1g时就该考虑分区,对于历史数据的修改不多的情况下也可以考虑分区

装载:https://my.oschina.net/zhengyp/blog/494038

https://my.oschina.net/u/195896/blog/75029

https://my.oschina.net/u/131940/blog/550154

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容