ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

02-mysql的逻辑结构\物理结构

2020-10-01 19:31:57  阅读:370  来源: 互联网

标签:02 24 rw ----. ibd user mysql 结构


一、mysql的逻辑结构

首先我们先看一下语句

select user,password,host from mysql.user;

我们最直观看到的就是执行这条语句后产生的结果,是一张表,这张表其实起就是mysql中产生的逻辑结构,这些表是用库来存放的

对于当前表来说,user表就是存放在mysql库中

 

库(database、schema),相当于Linux文件系统中的目录的概念,库中可以包含多张表

表:二维表

  • 数据行
  • 列属性:列名+列定义(约束)  

逻辑结构总结:

"""
库 ----> 表
             |
            元数据 + 数据行
             |
            列 + 其他属性(行数,占用空间大小,权限)
             |
            列名 + 数据类型 + 其他约束(非空\唯一\主键\非负数\自增长\默认值)
           
"""

二、mysql物理结构

1、对于mysql来说,mysql的最底层是数据文件(这三个文件),也就是存储引擎打交道的是对象是数据文件。下一层是操作系统,下一层是磁盘,磁道、扇区、颗粒

2、存储引擎分为了很多种类

3、不同存储引擎区别:存储方式、安全性、性能

myisam:

-rw-rw----. 1 mysql mysql  10684 9月  24 17:51 user.frm
-rw-rw----. 1 mysql mysql    628 9月  24 18:29 user.MYD
-rw-rw----. 1 mysql mysql   2048 9月  24 18:38 user.MYI
"""
user.frm: 称为表的结构信息,结构信息就是列属性的一部分
user.MYD: 行记录,真实数据
user.MYI: 索引
"""

innodb:

-rw-rw----. 1 mysql mysql     8586 9月  24 18:29 kkk.frm
-rw-rw----. 1 mysql mysql   98304 9月  24 18:38 kkk.ibd
"""
kkk.frm: 表结构
kkk.ibd: 表数据
"""

 

"""
对于mysql层来说,aaa.ibd文件就是mysql的最底层
对于操作系统来说,aaa.ibd文件就是逻辑层面的概念,文件系统对于操作系统来说就是最底层
对于硬件来讲,block块(文件系统)是逻辑概念,对于它自己来讲,柱面\扇区\磁道是逻辑层,真正存储在磁道上可磁化的金属颗粒
"""

1、段、区、块

mysql是要把表记录存在ibd上,但是没有办法直接用ibd

页:mysql存储的最小单元,页的大小为16k,类似于block

将一个ibd文件划分为多个页

如果10条记录需要两个页存储,那么追加10行,还需要2页,因为都是操作的一张表,应该让这四页顺序的,但是中间有其他操作,现在前两个页和后两个页不是顺序的了,怎么办?

 

如果第一次需要两个页,mysql在分配时,会一次性多分配些,构成一个区。

区: 也就是连续的多个页,就是一个区

段: 段就是多个区,可以理解为一张表

 

标签:02,24,rw,----.,ibd,user,mysql,结构
来源: https://www.cnblogs.com/kongxiangqun/p/13758091.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有