【详解】MySQL分区表,分区的过程,四种分区类型

您所在的位置:网站首页 数据库range类型 【详解】MySQL分区表,分区的过程,四种分区类型

【详解】MySQL分区表,分区的过程,四种分区类型

2024-07-17 08:31| 来源: 网络整理| 查看: 265

        分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持。当并不是所有的存储引擎都支持,如CSV等不支持。在使用分区功能之前,应该对存储引擎对分区的支持有所了解。

        MySQL数据库在5.1版本时添加了分区功能。

        分区的过程是将一个表或者索引分解为多个更小、更可管理的部分。就访问数据库应用而言,从逻辑上讲,只有一个表或者一个索引,但是在物理上,这个表或索引可能由数十个物理分区组成。每个分区都是独立的对象,可以独自处理。也可以作为一个更大对象的一部分进行处理。

        MySQL数据库支持的分区类型为水平分区,所谓水平分区,将同一个表中的不同行分配到不同的物理文件中。不支持垂直分区,垂直分区是将同一个表中的不同列的记录分配在不同的物理文件中。此外MySQL数据库的分区是局部分区索引,一个分区中既存放了数据,又存放了索引。MySQL数据库目前不支持全局分区。全局分区是指,数据存放在各个分区内,但是所有数据的索引存放在一个对象中。

可以通过以下命令来查看数据库是否启用分区功能:

SHOW VARIABLES LIKE '%partirion%'\G;

结果:

注意:

        大多数的DBA会有这样一个误区:只要启用了分区,数据库运行的速度就会更快。这个解决是存在一些问题的。分区确实给某些SQL语句的性能带来提高,但是分区主要用于数据库的高可用性的管理。

四种分区类型:

当前MySQL数据库支持以下分区类型:

①RANGE分区:行数据基于属于一个给定连续区间的列值被放入分区。MySQL5.5开始支持RANGE COLUMNS的分区。

②LIST分区:LIST分区面向的是离散的值。MySQL5.5开始支持LIST COLUMNS的分区。

③HASH分区:根据用户自定义的表达式的返回值进行分区,返回值不能为负数。

④KEY分区:根据MySQL数据库提供的哈希函数来进行分区。

        不论创建何种类型的分区,如果表中存在主键或者唯一索引时,分区列必须是唯一索引的组成部分。

        唯一索引是运行有NULL值的,分区列只要是唯一索引的一个组成部分,不需要整个唯一索引都是分区列。

        如果建表的时候没有指定主键和唯一索引,可以指定任何一个列为分区类。

还有子分区,

子分区,其实就是在分区的基础上再进行分区。MySQL数据库允许在RANGE和LIST的分区上再进行HASH和KEY分区。

理论知识先了解那么多。下面就是实际在开发过程中的操作了。。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3