| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【详解】MySQL分区表,分区的过程,四种分区类型 -> 正文阅读 |
|
[大数据]【详解】MySQL分区表,分区的过程,四种分区类型 |
????????分区的功能并不是在存储引擎层进行完成的,因此不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB都支持。当并不是所有的存储引擎都支持,如CSV等不支持。在使用分区功能之前,应该对存储引擎对分区的支持有所了解。 ????????MySQL数据库在5.1版本时添加了分区功能。 ????????分区的过程是将一个表或者索引分解为多个更小、更可管理的部分。就访问数据库应用而言,从逻辑上讲,只有一个表或者一个索引,但是在物理上,这个表或索引可能由数十个物理分区组成。每个分区都是独立的对象,可以独自处理。也可以作为一个更大对象的一部分进行处理。 ????????MySQL数据库支持的分区类型为水平分区,所谓水平分区,将同一个表中的不同行分配到不同的物理文件中。不支持垂直分区,垂直分区是将同一个表中的不同列的记录分配在不同的物理文件中。此外MySQL数据库的分区是局部分区索引,一个分区中既存放了数据,又存放了索引。MySQL数据库目前不支持全局分区。全局分区是指,数据存放在各个分区内,但是所有数据的索引存放在一个对象中。 可以通过以下命令来查看数据库是否启用分区功能:
结果: 注意: ????????大多数的DBA会有这样一个误区:只要启用了分区,数据库运行的速度就会更快。这个解决是存在一些问题的。分区确实给某些SQL语句的性能带来提高,但是分区主要用于数据库的高可用性的管理。 四种分区类型: 当前MySQL数据库支持以下分区类型: ①RANGE分区:行数据基于属于一个给定连续区间的列值被放入分区。MySQL5.5开始支持RANGE COLUMNS的分区。 ②LIST分区:LIST分区面向的是离散的值。MySQL5.5开始支持LIST COLUMNS的分区。 ③HASH分区:根据用户自定义的表达式的返回值进行分区,返回值不能为负数。 ④KEY分区:根据MySQL数据库提供的哈希函数来进行分区。 ????????不论创建何种类型的分区,如果表中存在主键或者唯一索引时,分区列必须是唯一索引的组成部分。 ? ? ? ? 唯一索引是运行有NULL值的,分区列只要是唯一索引的一个组成部分,不需要整个唯一索引都是分区列。 ? ? ? ? 如果建表的时候没有指定主键和唯一索引,可以指定任何一个列为分区类。 还有子分区, 子分区,其实就是在分区的基础上再进行分区。MySQL数据库允许在RANGE和LIST的分区上再进行HASH和KEY分区。 理论知识先了解那么多。下面就是实际在开发过程中的操作了。。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:51:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |