June 26, 2022
SQL
《The Volcano Optimizer Generator : Extensibility and Efficient Search》1993
论文介绍了在EXODUS之后的一个新的优化器生成器Volcano。
一个好的optimizer generator要满足如下条件:
既能用到 ...
Read more
June 24, 2022
Database
《The Snowflake Elastic Data Warehouse》 SIGMOD 16’
Snowflake具备如下的特点:
纯粹的SaaS体验:用户将数据放到云上,然后可以通过snowflake对他们的数据进行查询。
关系型:支持SQL和ACID
办结构化:内置函数和SQL扩展 ...
Read more
June 12, 2022
SQL
《How to Architect a Query Compiler, Revisited》 SIGMOD’16
数据库执行一个查询的流程包括前端语法解析、优化器以及后端解释执行。语言编译器的流程与之类似,除了最后一步会编译成机器码执行,DBMS一般还是解析执行的。
在相当长一段时间内,硬盘 ...
Read more
June 12, 2022
Database
性能分析和优化是一个要求比较全面的工作,通常既要了解所分析的目标系统本身的设计和实现,也要对操作系统等底层基础设施有一定了解,同时需要掌握一些方法论以指导性能分析和优化工作。
本文尝试根据个人这几年做过的几次数据库性能优化的一点经验做一些总结。如前所说,性能分析和优化覆盖面比较广,这里只能抛 ...
Read more
June 10, 2022
Database
《Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics》 CIDR21’
整片文章讲的比较宽泛。
Introduction第一代数仓:结构化数据,用于决 ...
Read more
June 4, 2022
MySQL
互斥锁 ib_mutex_ttypedef FutexMutex ib_mutex_t;
UT_MUTEX_TYPE(TTASFutexMutex, GenericPolicy, FutexMutex); 这个宏定义展开是 typedef PolicyMutex<TTASFutexMu ...
Read more
June 3, 2022
MySQL
InnoDB的存储层次总的数据粒度:Row - Page - Extent - Segment - Tablespace。
!http://loopjump.com/wp-content/uploads/2020/06/image-20200623151536735-1024x756.png ...
Read more
June 2, 2022
MySQL
InnoDB事务系统负责InnoDB层事务管理,快照管理,MVCC等。
事务对象InnoDB层事务对象为 struct trx_t 类型。
12345678910111213141516// 部分字段struct trx_t{ trx_id_t id; // 事务开启序 ...
Read more
June 1, 2022
MySQL
MySQL 5.7中 Log Sys锁冲突比较大,MySQL 8.0对InnoDB Log Sys进行了重构。
我们先描述下5.7的 Log Sys看看锁冲突,然后再介绍8.0的方案以及部分代码实现细节。
mtrmtr 表示 mini-transaction,表示操作的一个最小原子单元,比数 ...
Read more
April 29, 2022
SQL
《Access Path Selection in a Relational Database Management System》 1979
SQL语句处理的四个阶段:Parsing, Optimization, Code Generation, Execution。
query bloc ...
Read more