随笔分类 - 数据库
有关数据库的一些问斩
摘要:MySQL 表连接算法 简单嵌套循环连接 对于 t1 表中过滤后的每一条数据,都会立马去 t2 表中进行匹配查询,而不会等记录检索完成了再去查询 t2 这个过程就像是一个嵌套的循环,连接的表的数量就是循环嵌套的层数,当表中数据量较大或连接的表过多时,这种算法的性能是很差的 索引嵌套循环连接 和 简单
阅读全文
摘要:开窗函数 (Window Function)提供了行集之间的计算能力,在现代的主流关系型数据库中,基本都提供了相似的功能,这些功能在一些业务开发的过程中很有用,本文将简要介绍这些常用的开窗函数 ## ROW_NUMBER() `ROW_NUMBER()` 函数的使用语法如下: ``` sql ROW
阅读全文
摘要:在一般的业务场景中,特别是针对相关的业务线相关的功能开发时,可能会遇到一些具有层级关系的数据关联结构。比如,一个员工可能属于一个领导管辖,而同时,这个领导也被另一个更高级别的领导管辖……,而本质上这些领导本身也是一个公司的员工,和普通员工有着相同的属性。因此,在为个功能设计相关的表结构时,单独为领导
阅读全文
摘要:解决并发事务带来的问题 写—写情况 任意一种事务隔离级别都不允许 “脏写” 的发生,因为这样会使得数据混乱。所以,当多个未提交的事务相继对一条记录进行改动时,就需要使得这些事务串行执行,避免 “脏写” 的发生。 为了使得事务的执行是串行化的,需要通过对修改的记录进行加锁,才能保证事务的执行是串行化的
阅读全文
摘要:事务 事务是一组原子性的 SQL 操作,或者被称为一个独立的工作单元,如果数据库引擎能够成功地对数据库应用该组的全部 SQL 语句,那么就会全部执行,否则全部不执行。 事务的特性 在关系数据库管理系统中,事务需要满足 ACID 四个基本特征,具体解释如下[1]: A(Atomicity)原子性 一个
阅读全文
摘要:在操作系统和数据库管理系统中,为了提高数据的容灾性,一般都会通过写入相关日志的方式来记录数据的修改,使得系统受到灾难时能够从之前的数据中恢复过来。MySQL 也提供了日志的机制来提高数据的容灾性,主要包括 redo 日志和 undo 日志 redo 日志 在 Buffer Pool中修改了页,如果在
阅读全文
摘要:存储在磁盘上的数据需要通过 IO 来读取,这是一个比较耗时的操作,为了能够提高访问速度,MySQL 引入了 Page 的结构作为客户端与数据交互的基本单元。 Page 结构 Page 的大小默认为 16 kb,由于这个大小可能无法与某些操作系统的页大小相匹配,这种情况下可能会使得对于 Page 的写
阅读全文
摘要:PageRank 算法 作为 Google 最早的一个网页排名算法,该算法在早期的搜索引擎中是搜索结果最为准确的,同时也是 Google 发家的一个重要算法。尽管这些年来该算法不再是 Google 对于网页排名的唯一算法,但是它的核心思想还是值得我们去研究一下的。 算法简单描述:首先假定每个
阅读全文

浙公网安备 33010602011771号