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

编程知识 行业动态 更新时间:2024-06-13 00:18:57

        分区的功能并不是在存储引擎层进行完成的,因此不是只有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分区。

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

更多推荐

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

本文发布于:2023-03-27 13:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/2e3ac656328dffdae8d7e2a4b897b185.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分区表   分区   四种   详解   过程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!