MySQL技术:数据库逻辑结构单元
0:数据库逻辑结构包括表空间,段,区,数据块(页)
1、数据库在逻辑上是由多个表间组成的,表空间中存储的对象是段;
2、段,由区组成,比如数据段,索引段,和undo段;
3、区,是磁盘分配的最小单位,是物理上连续的块,一个extent的大小是1M,由64个页组成;
4、块(页),在MySQL中块就是页,是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位,一个page的大小是16K(默认,一般也不会更改),innodb_page_size,其值应设置为操作系统块大小的整数倍。
1、表空间(tablespace)
表空间是数据库最大的逻辑结构,一个数据库在逻辑上由多个表空间组成,一个表空间只隶属于一个数据库。
1、一个表空间可以有多数据文件,但是一个数据文件只能属于一个表空间;
2、一个表空间就是一片磁盘区域,由一个或者多个磁盘文件组成,一个表空间可以容纳许多表、索引等。
2、段(segment)
一个表就是一个段,段可以分成:数据段、索引段、回滚段
1、数据段用来存储用户的数据,每个表都有一个对应的回滚段,其名称和数据表的名字相同;
2、索引段用来存储系统、用户的索引信息;
3、回滚段用来存储用户数据修改前的值,回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。
3、区(extent)
区是磁盘空间分配的最小单位;
1、磁盘按区划分,每次至少分配一个区;
2、区存储于段中,它由连续的数据块组成。
4、块(data block)、页(page)
数据块是数据库中最小的数据组织单位与管理单位,是数据文件磁盘存储空间单位,也是数据库I/O 的最小单位。
5、数据行的格式
行的几个关注要素:
1、变长列字节列表
1>记录了各个变长列的长度情况,方便找到变长边界;
2>按照列顺序逆序放置
2、null列表
1>记录null的列的标志信息,因为null的列在行记录里不记录列值,方便找的时候知道哪列是空的
2>空列不占空间,可变长+null位,定位后面的列数据
3、行头标志
4、列数据:实际我们存放的数据
5、删除标记(deleted_flag):删除时对该行进行标记“deleted”,待purge
对于未提交事务的删除,其他可以继续select,因为没有真正的删除,也就不用劳烦undo了。
6、xid(6字节)、rollpointer(7字节)
如果没有定义主键的话,每行还会增加个rowid列(6字节),作为隐藏主键;
6、行列接
1、varchar可以很长,varchar(20):可以存放20个字符
gbk:一个字符占2个字节,因此实际上占用40个字节
utf8:一个字符大约占3个字节,因此实际上占用60个字节
2、blob列,主要用来存放图片、文件
建议:
1、对于大列,单独独立出去,采用垂直拆分表的方式来实现
2、不要出现一个表中存在多列、长列的情况,否则表的性能会很低下
原文链接:https://www.cnblogs.com/geaozhang/p/8610978.html
MySQL技术:数据库逻辑结构单元相关推荐
- mysql气象数据分析_气象行业 - 解决方案 - MySQL分布式数据库_开源数据库解决方案_数据处理技术提供商-爱可生...
1.数据源 新一代CIMISS系统所收集的结构化信息包括了28个类别:中国地面逐小时资料(新Z自动站),中国地面逐小时资料(一体化区域站),中国地面逐小时资料(无人站),中国地面分钟资料(新Z自动站) ...
- 读书笔记之MySQL技术内幕
前言 本文内容基本摘抄自<MySQL技术内幕 InnoDB存储引擎>,以供复习之用,没有多少参考价值.想要更详细了解请参考原书. 第一章.MySQL体系结构和存储引擎 数据库是物理操作系统 ...
- MYSQL技术连环斩-MYSQL简述
前言:严格的来说,MYSQL是一款产品而不是一项技术.关于技术和产品的论述,请参考我的博文.现在进行小结一下.可以说数据库技术是为了解决数据之间如何聚合,聚合的数据如何管理的问题.为了实际上的真正应用 ...
- mysql技术分享--表分区实现
分区表 分区概念 分区功能并不是在存储引擎层完成的,因此不止有InnoDB存储引擎支持分区,常见的存储引擎MyISAM,NDB等都支持.但是也并不是所有存储引擎都支持,比如CSV,FEDERATED, ...
- Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引@51cto)
Sybase数据库技术,数据库恢复 分享Sybase数据库知识 博客文章列表,更新时间:2014-12-14 Sybase数据库技术,数据库恢复 站点地图 最新文章 ASE使用with ignore_ ...
- MySQL默认数据库介绍
MySQL默认数据库介绍 大家在学习MySQL时,安装后都会发现里边已经自带了几个默认的数据库,我装的MySQL5.5里边自带六个数据库 网上查了一些资料对这几个数据库的功能做一下学习. 1.info ...
- MySQL及数据库相关
文章目录 数据库基础知识 1. 什么是MySQL? 2. 数据库三大范式是什么 3. SQL的几种连接查询方式(内连接.外连接.全连接.联合查询) 引擎 1. MySQL存储引擎MyISAM与Inno ...
- Sybase数据库技术,数据库恢复---分享Sybase数据库知识(博客文章索引)
Sybase数据库技术,数据库恢复 分享Sybase数据库知识 博客文章列表,更新时间:20141218 Sybase数据库技术,数据库恢复 » 站点地图 最新文章 ASE使用with ignore_ ...
- mysql技术之innodb存储引擎
mysql技术内幕InnoDB存储引擎 基本信息作者姜承尧类别技术-mysql简介第二版推荐指数阅读日期开始日期终止日期书摘mysql体系结构和存储引擎特点可移植数据库定义数据库和实例定义数据库物理操 ...
- 高薪必备!年薪80W+的阿里巴巴P8架构师都学习的笔记:《MySQL技术精粹》理论+实战齐飞
写在前面 目前国内MySQL需求旺盛,各大知名企业高薪招聘技术能力强的MySQL开发人员和管理人员.本文根据这样的需求,针对已经有MySQL基础的读者,注重内容实战,通过实例的操作与分析,引领读者快速 ...
最新文章
- 不会做内部分享的程序员不是好程序员
- 将JSON数据转换成JAVA的实体类
- 订单编号,递增且不连续(php版)
- 问题:AmqpConnectException: java.net.ConnectException: Connection refused: connect
- c++11新特性_【C++11新特性】 C++11智能指针之weak_ptr
- 华为鸿蒙安全认证,手机系统哪家强,华为鸿蒙系统获得国际安全标准最高等级认证,强不强?...
- Qt只有release
- 《Go程序设计语言》- 第13章:低级编程
- Qt简单实现UDP通信
- pycharm ssh interpreter 搭建
- unity anysdk android,Unity3d Android SDK接入解析(四)通用的Android SDK接入中间件
- pg库sharelock_PG数据库错误: 检测到ShareLock死锁处理
- 【基础篇】————9、隐匿攻击之Twitter
- gnuplot下载安装使用
- 超市会员注册积分查询管理系统
- 调参神器optuna学习笔记
- 多光谱影像isodata非监督分类
- 在M1上安装Rosetta
- 什么是Kappa架构?
- android 如何判断去电或来电已经接通