Mysql分区
2021-08-11 18:42:31 小德 MySQL 访问次数 116


分区表适合粗粒度,简易的大数据量的过滤,常见场景:历年数据,查具体某一年。一般用于OLAP项目中。

mysql分区的方式是对底层的封装,意味着索引也是按分区的子表定义的没有全局索引。

好处:1、数据量大 无法全部放入内存(B-tree不起作用) 缩小查询范围

         2、删除特定分区数据快

         3、对独立分区进行优化、检查、修复方便

         4、避免某些单个索引互斥访问的问题比如inode锁竞争

         5、备份恢复数据方便

Tips:

        1、一个表最多1024个分区,限制在150个以内

        2、分区字段中有主键或唯一索引的列必须在分区字段里

分区类型:

    垂直分区:同一张表的不同列;水平分区:同一表中不同行分区;MySQL支持水平分区;

    range分区:给定连续区间的列值被放入分区;

    LIST分区:面向离散值;

    Hash分区:根据用户自定义的表达式;将数据均匀的分布在预先定义的分区中

    KEY:根据用户提供的哈希函数;

    以上四种分区的条件必须是interger

    COLUMNS分区支持类型多,日期字符串等