IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 第四章-表 -> 正文阅读

[大数据]第四章-表

一、索引组织表
在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表。每张表都有个主键,如果在创建表时没有显式地定义主键,则InnoDB会按如下方式选择或创建主键:
(1)首先判断表中是否有非空的唯一索引(Unique NOT NULL),如果有,则该列即为主键
(2)如果无,InnoDB会自动创建一个6字节大小的指针
注:主键的选择根据的是定义索引的顺序,而不是建表时刻的顺序

二、InnoDB逻辑存储结构
从逻辑角度,所有数据被存放在一个空间中,称之为表空间(tablespace)。表空间又由段(segment)、区(extent)、页(page)组成。页有时也被称为块(block)。结构如下:
在这里插入图片描述

  • 表空间:逻辑结构的最高层,所有的数据都放在表空间中
  • 段:常见的段有数据段、索引段、回滚段等。数据段即为B+树的叶子节点(Leaf node segment),索引段即为非叶子节点(Non-leaf node segment)。回滚段后续介绍。对段的管理是由引擎自身完成的。
  • 区:区是由连续的页组成的,大小为固定的1MB。为保证页的连续性,InnoDB一次从磁盘申请4-5个区,默认情况下页大小为16KB,即一个区中有64个连续的页。
  • 页:页/块是InnoDB磁盘管理的最小单位。默认页大小为16KB,可通过innodb_page_size设置为4K,8K,16K.设置完成后不可再次修改。常见的页类型有:(1)数据页(B-tree Node)(2)undo页(undo Log Page)(3)系统页(System Page)(4)事务数据页(Transaction system Page)(5)插入缓冲位图页(Insert Buffer Bitmap)(6)插入缓冲空闲列表页(Insert Buffer Free List)(7)未压缩的二进制大对象页(Uncompressed BLOB Page)(8)压缩的二进制大对象页(compressed BLOB Page)
  • 行:InnoDB是面向列的(row-oriented),即数据是按行进行存放的。每个页最多存放16KB/2-200 = 7992行记录

二、InnoDB行记录格式

InnoDB提供了Compact和Redundant两种格式来存放行记录数据。Redundant格式是为了兼容之前的版本而保留的。
2.1 Compact
MySQL5.0版本之后支持:
在这里插入图片描述

2.2 Redundant
在这里插入图片描述
2.3 行溢出数据
InnoDB可以将一条记录中的某些数据存储在真正的数据页面之外。

2.4 Compressed和Dynamic行记录格式

2.5 CHAR的行结构存储

三、InnoDB数据页结构

四、Named File Formats机制

五、约束

5.1 数据完整性

关系型数据库系统和文件系统的一个不同点是,关系数据库本身能保证存储数据的完整性,不需要应用程序的控制,而文件系统一般需要在程序端进行控制。数据完整性有以下三种形式:

  • 实体完整性:保证表中有一个主键。用户可通过定义Primary Key 或 Unique Key约束来保证实体的完整性;还可以通过编写触发器
  • 域完整性:保证每列的值满足特定的条件。途径有:(1)选择合适的数据类型(2)外键(Foreign Key)约束(3)编写触发器(4)DEFAULT约束
  • 参照完整性:保证两张表之间的关系。InnoDB允许用户定义外键以强制参照完整性,也可通过编写触发器强制执行。

5.2 约束的查找与创建

约束的创建可以在(1)表建立时就进行约束定义;(2)利用ALTER TABLE命令创建约束。

5.3 约束和索引的区别

5.4 对错误数据的约束

5.5 ENUM和SET约束

5.6 触发器与约束

触发器的作用是在执行INSERT, DELETE, UPDATE命令之前或之后自动调用SQL命令或存储过程。
创建触发器的命令是CREATE TRIGGER,只有具备Super权限的MySQL数据库用户才可以执行,最多可为一张表建立6个触发器,即三个命令之前和之后。

5.7 外键约束

六、视图(view)

视图是一个命名的虚表,由一个SQL查询来定义,可以当作表使用。与permanent table不同的是,视图中的数据没有实际的物理存储。

七、分区表

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:17:51  更:2021-10-06 12:20:24 
 
开发: 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 0:58:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码