窗口函数是SQL中的高级操作,能够实现一般聚合函数无法完成的排序、生成序列号等功能。它们通过创建“窗口”概念,使查询更加灵活和强大。理解窗口函数的核心在于掌握PARTITION BY 和ORDER BY这两个关键字。窗口函数大体分为两类:一类是聚合函数,包括sum、avg、count、max、min等;另一类是专用窗口函数,如...
1. redo log 作用:保证事务的持久性。通过先将事务的修改记录到 redo log 中,再更新内存,可以减少直接刷新磁盘带来的性能开销。组成:由 redo log buffer 和 redo log file 两部分组成。数据先写入 redo log buffer,再在某个时间点批量写入 redo log file。写入时机:MySQL 支持三种写入 redo lo...
B+树:B树的一种变体,非叶子节点只存储索引,叶子节点形成有序的链表,支持高效的区间查询,是MySQL中常用的索引数据结构。MySQL存储引擎的索引实现:MyISAM引擎:基于B+树索引,索引数据存储在内存中,索引和数据文件分开存储。InnoDB引擎:使用聚集索引,表数据文件本身就是按B+树组织的一个索引结构文件...
1. 字符类型长度: CHAR和VARCHAR:长度表示字段可容纳的最大字符数量。 CHAR:长度包括填充的空格以达到定义长度,如果存储的内容长度不足定义长度,MySQL会自动在右侧填充空格。 VARCHAR:长度表示最大字符数,但实际存储时会根据内容长度动态调整,不会填充空格。2. 字符与字节的区别: 字符数通常...
Redo Log、Undo Log、Bin Log是MySQL数据库中至关重要的三种日志,它们各自承担着不同的职责:Redo Log:职责:记录磁盘数据页的修改,为事务的持久性提供保障。特点:是物理日志,记录数据页的变化。采用预写日志策略,即先写入缓冲区,再同步到磁盘。文件大小固定,通过配置决定刷盘时机。在系统崩溃时...