首页 > 数据库 >Mysql

Mysql

时间:2022-11-15 20:34:20浏览次数:39  
标签:存储 记录 变长 Mysql 磁盘 NULL 主键

1:mysql服务器处理client分三部分:链接管理 解析与优化 存储引擎(表处理器,Innodb)

2:字符集和比较规则 一个比较规则对应一个的字符集,而Mysql之所以能排序 就是把值根据字符集编码之后进行排序

3.innoDB记录存储引擎

存储方式:将数据划分为若干个页,以页作为磁盘和内存直接交互的基本单位。每页大小16Kb 在一般情况下就是从磁盘读16kb到内存, 把内存16kb刷盘到磁盘中

问题:如果一次值更新1条记录的字段没达到16kb,那么是怎么刷盘的?

4.平常我们都是以记录为单位向表中插入数据,这些记录在磁盘的存放也成为行格式

COMPACT行格式由:(变长字段长度列表+NULL值列表+记录头信息 记录的额外信息)+列1的值+列2的值+.....列N的值

所以像 varchar等变长字段类型,=真正的数据内容+数据占用的字节数(存在变长字段的长度列表里面) 各个变长字段的真实数据占用的字节数按照列的逆序存放, 

为啥是逆序呢?

5.NULL值列表

一些记录中可能存储NULL值,NULL是怎么存储的

如果把NULL都放到记录的真实数据中存储会很占地方,所以COMPACT行格式会把一条记录的null的列统一管理 排除主键和不为NULL的列,按照二进制位,逆序排列  二进制位1时 标识该列的值为NULLmm    

6.记录头信息固定5个字节=40位每一位代表不同的意思

7.记录的真实数据

innoDB主键生成策略:优先以用户定义的主键为主,没有则以不为NULL的Unique,如果也没有,则添加一个名为row_id的隐藏主键列

标签:存储,记录,变长,Mysql,磁盘,NULL,主键
From: https://www.cnblogs.com/LZXX/p/16824291.html

相关文章

  • 8.0以上版本MySQL-Driver连接数据库
    一、URLURL解析变更`之前我的MySQL数据库驱动mysql-connector-java版本号为5.1.34,在升级成8.0.9-rc版本后,发现原来的连接方式报错了。故在这里记录一下新版本的MySQL......
  • MySQL视图
    准备工作,新建名为students的数据,三张表分别是student,courses,stu_cou,并创建外键约束,级联删除更新,插入数据。/*创建数据库*/createdatabaseifnotEXISTSstudentscha......
  • windows10单机使用mysql8实现主从复制
    一、在windows10下开启两个MySQL实例,端口3306作为主服务器,端口3307作为从服务器,具体安装参看:https://www.cnblogs.com/simon-xie/p/13763145.html二、主服务器配置1、my.......
  • MySQL分表分区
    表分区表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。水平分区这种形式分区是......
  • MySQL 源码解读之-语法解析(三)
    MySQL源码解读之-语法解析(三)在前两篇文章中已经讲述了bison如何解析sql语句并生成AST树。那么MySQL是如何和bison的程序关联起来的呢,并通过gdb调试一下。在MyS......
  • mysql:名次排名 (并列与不并列)
    参考:https://blog.csdn.net/weixin_40790313/article/details/87621055mysql语法笔记 2018-08-23 |阅读:次说明做后台的难免与sql接触,到目前为止搞过的sql大致都是......
  • mysql使用load data导入数据文件
    参考:http://www.jquerycn.cn/a_130011)、将mysql中的数据批量导入文件中指定a,b,c字段复制代码代码如下:selecta,b,cfromtable1intoOUTFILE'/home/me/data/tabl......
  • 华为欧拉OpenEuler(Linux)安装MySQL8.0
    Euler版本:openEuler-22.03-LTS-x86_64-dvd.iso1、下载MySQL下载地址:https://dev.mysql.com/downloads/mysql/下载对应的版本,其中Euler22.03对应CentOS8,CentOS8==Re......
  • 认识 MySQL OPTIMIZER_TRACE--转
    手把手教你认识OPTIMIZER_TRACE前 言我们在日常维护数据库的时候,如果遇到慢语句查询的时候,我们一般会怎么做?执行EXPLAIN去查看它的执行计划? ......
  • Mysql 启动报错问题排查
    报错信息1:MySQL启动报错:File./mysql-bin.indexnotfound(Errcode:13)_MySQL请检查MySQL数据目录的权限/usr/local/mysql/data  ,  errcode13,一般就是权限问......