数据库
文章平均质量分 87
数据库
KIDAKN
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自适应哈希索引 和 日志缓冲区
如果日志不通过LogBuffer直接写入磁盘,那么每次进行DML操作都会进行一次磁盘l/O,这样会严重影响效率,所以把日志统一写入内存中的LogBuffer,根据刷盘策略统一进行落盘操作,可以实现一次磁盘I/O写入多条日志,从而提升效率。在对数据库进行DML操作时,InnoDB会记录对应操作的日志,比如为保证数据完整性实现数据库崩溃恢复的Redo Log,,这些日志会首先写入LogBuffer中,从而解决同步写磁盘导致的性能问题,然后根据不同落盘策略最终写入磁盘。自适应哈希索引的主要作用就是提升查询效率。原创 2025-07-16 17:39:44 · 403 阅读 · 0 评论 -
存储引擎简介
MyISAM 的三种存储格式中,静态格式是最简单和最安全的(最不容易损坏),同时也是最快的磁盘格式,因为每行的长度固定,根据索引中的行号乘以行长度就可以计算出行位置,此外,每次读取固定数量的行也非常的高效。2. 多个表中根据相同的 ID 查询数据, 建议使用表连接 (如果表多的话, 在表连接的时候会有一个 笛卡尔积, 会有很大的数据), 可以在连接的列上定义外键, 添加外键可以确保被引用的列是用索引。和8.0有所不同的是,在MySQL5.X及以前的版本中使用一个后缀为。原创 2025-07-03 11:20:34 · 635 阅读 · 0 评论 -
MySQL 事务和锁
事务是把一组SQL语句打包成为一个整体,在这组SQL的执行过程中,要么全部成功,要么全部失败。如果不用事务管理,当执行第一条SQL语句之后,服务器崩溃了那么整体的数据就不正确了。原创 2025-07-27 13:58:19 · 1053 阅读 · 0 评论 -
MySQL 存储结构
表空间文件是用来存储表中数据的文件, 表空间文件的大小由储存的数据多少决定, 不同的表空间文件存储的种类也有所不同, 在 MySQL中表空间分为五类 : 系统表空间, 独立表空间, 通用表空间, 临时表空间和撤销表空间。原创 2025-07-08 13:21:06 · 1134 阅读 · 1 评论 -
数据行结构
为每个没有定义NOT NULL约束也就是可以为NULL的列在NULL值列表中都安排了一个bit位,按列序号从小到大的顺序从右至左依序安排,这就是常说的逆序排列,NULL值列表最小1字节即8bit,如果没有那么多可以为NULL的列,则会用0补满8bit,如果为值为NULL的列超过8个,则新开辟1字节的空间,依此类推;行结构的最左侧是变长字段列表,也叫可变字段长度列表,在这个列表中记录了数据行中所有变长字段的实际长度,这样做的目的,是为了在真实数据区域,可以根据列的长度进行列与列之间的分割;原创 2025-07-08 18:43:30 · 727 阅读 · 0 评论 -
缓冲池简介
缓冲池中主要缓存的是磁盘中的数据页,由于数据页中没有一个字段用来表示内存中下一页的地址,InnoDB定义了"控制块"的数据结构,控制块中有一个指向数据页内存地址的指针实现"控制块"与数据页的一一对应,并且把每个控制块连接成一个双向链表,用一个单独的头节点记录链表的第一个和最后一个节点,这样通过遍历控制块链表就可以遍历内存中的数据页。面介绍了 Chunk中管理的是具体的数据页,当缓冲池初始化完成时会把每个数据页所占用的内存空间和对应的控制块分配好,只不过是没有从磁盘加载数据时,内存中的数据页是空的而已。原创 2025-07-14 14:22:08 · 818 阅读 · 0 评论 -
撤销日志简介
当事务对数据进行修改的时候,每个修改操作都会在磁盘上创建与之对应的UndoLog当事务需要回滚时,会根据UndoLog逐一进行撤销操作,从而保证事务的原子性。也就是说撤销日志是为事务的回滚操作而诞生的机制,它是一个撤销操作记录的集合。Undo日志保存在Undo日志段中,Undo日志段位于回滚段中,回滚段位于undo表空间和全局临时表空间中。原创 2025-07-21 17:25:08 · 988 阅读 · 0 评论 -
InnoDB 存储引擎的 架构
首先 InnoDB 存储引擎可以分为内存结构和磁盘结构。原创 2025-07-11 18:57:59 · 216 阅读 · 0 评论 -
双写缓冲区 & Redo Log
Redo Log 从内存刷到磁盘上的日志文件使用循环写入的方式,也就是从第一个日志文件顺序写到最后一个日志文件,当最后一个日志文件写满时又重新写第一个日志文件,那么就可能出现日志被覆盖的情况,那么哪些日志可以被覆盖哪些不能被覆盖呢?原创 2025-07-23 17:05:32 · 748 阅读 · 0 评论 -
表空间简介
什么是表空间 : 表空间可以理解为MYSQL为了管理数据而设计的一种数据结构,主要描述的对结构的定义,表空间文件是对定义的具体实现,以文件的形式存在于磁盘上,以后我们说的表空间指的就是表空间文件InnoDB存储引擎的表空间包括:系统表空间、独立表空间、通用表空间、临时表空间和撤销表空间。原创 2025-07-19 14:59:36 · 938 阅读 · 0 评论 -
变更缓冲池简介
由于聚集索引具有唯一性,我们分析一下聚集索引为什么不能被放入变更缓存,假设表中有一个主键(ID),现在有两条INSER 语句,都在插入数据时ID的值相同(id=1),那么在变更缓冲区中就存在两个修改操作,如果以后要合并到缓冲池中,这时就会出现重复的主键值,所以聚集索引的修改不能被加入到变更缓冲区;原创 2025-07-15 09:40:25 · 362 阅读 · 0 评论 -
数据库->事务
MySQL服务可以同时被多个客⼾端访问,每个客⼾端执⾏的DML语句以事务为基本单位,那么不同的客⼾端在对同⼀张表中的同⼀条数据进⾏修改的时候就可能出现相互影响的情况,为了保证不同的事务之间在执⾏的过程中不受影响,那么事务之间就需要要相互隔离,这种特性就是隔离性。原创 2024-11-07 11:23:43 · 1586 阅读 · 0 评论 -
数据库->索引
当向⼀个新⻚插⼊数据时,将 Infimun 连接第⼀个数据⾏,最后⼀⾏真实数据⾏连接Supremun ,这样数据⾏就构建成了⼀个单向链表,更多的⾏数据插⼊后,会按照主键从⼩到⼤的顺序进⾏链接,如下图所⽰。• 当⼀个select语句使⽤了普通索引且查询列表中的列刚好是创建普通索引时的所有或部分列,这时就可以直接返回数据,⽽不⽤回表查询,这样的现象称为索引覆盖。1.创建表的时候,明确知道某些列是频繁查询的列,就直接创建(当表中数据比较少时,全表扫描的效率可能比使用索引的效率还要高)原创 2024-11-06 21:45:50 · 1644 阅读 · 0 评论 -
数据库->视图
视图是⼀个虚拟的表,它是基于⼀个或多个基本表或其他视图的查询结果集。视图本⾝不存储数据,⽽是通过执⾏查询来动态⽣成数据。⽤⼾可以像操作普通表⼀样使⽤视图进⾏查询、更新和管理。视图本⾝并不占⽤物理存储空间,它仅仅是⼀个查询的逻辑表⽰,物理上它依赖于基础表中的数据。原创 2024-11-05 22:26:51 · 603 阅读 · 0 评论 -
数据库->联合查询
⾃连接是⾃⼰与⾃⼰取笛卡尔积,可以把⾏转化成列,在查询的时候可以使⽤where条件对结果进⾏过滤,或者说实现⾏与⾏之间的⽐较。要从多个表中获取数据,如下图所⽰:要获取学⽣的基本信息和班级信息就要从学⽣表和班级表中获取,这时就需要使⽤联合查询,这⾥的联合指的是多个表的组合。:与左外连接相反,返回右表的所有记录和左表中匹配的记录。子查询是由很多条SQL语句组成的 可以把子查询中的SQL一条一条的执行 最终拿到想要的结果。在子查询中先执行内层的SQL,内层的SQL会产生一个值,做为外层查询的条件。原创 2024-11-02 22:03:04 · 1435 阅读 · 0 评论 -
数据库->数据库设计
数据库的范式是⼀组规则。在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式。原创 2024-10-28 23:18:53 · 708 阅读 · 0 评论 -
数据库->数据库约束
只要符合非空和唯一即可自增操作一旦完成 不论是否写入成功 都不会回退两列全部重复才报错。原创 2024-10-27 23:05:58 · 2727 阅读 · 0 评论 -
数据库->增删改查
CURD是对数据库中的记录进⾏基本的增删改查操作:• Create(创建)• Retrieve(读取)• Update(更新)• Delete(删除)原创 2024-10-24 15:35:59 · 3024 阅读 · 0 评论 -
数据库->表的操作
创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则。这些可选项,如果不指定就用数据库默认的,也可以单独为每张表指定不同的设置。• RENAME[TO|AS]new_tbl_name:重命名当前的表。• character set:字符集,不指定则使⽤默认字符集。• collate:排序规则,不指定则使⽤默认排序规则。• engine:存储引擎,不指定则使⽤默认存储引擎。• TEMPORARY:表⽰创建的是⼀个临时表。• ⼀次可以删除多个表,表与表之间⽤逗号隔开。原创 2024-10-19 10:01:36 · 1776 阅读 · 0 评论 -
数据库->数据类型
安装完MYSQL之后就有了MYSQL服务 --> 管理着很多个数据库 --> 管理着很多个表 --> 管理着很多数据行 --> 数据行是由多个列组成的 --> 描述列用到了数据类型定义列时,需要为每个列指定数据类型。原创 2024-10-17 22:09:15 · 1070 阅读 · 0 评论 -
数据库->库的操作
实例库,用于练习,可以随意修改。原创 2024-10-17 05:00:00 · 989 阅读 · 0 评论 -
【初识数据库】
组织和保存数据的应用程序。原创 2024-10-16 21:14:09 · 640 阅读 · 0 评论
分享