摘要:
记录列存储引擎第二讲的绸缪规划。
宣传语:
标题:
一条查询SQL在Tianmu引擎中的代码实现
宣讲语:
你是否只读过数据库理论的书籍, 但是一遇到代码就头疼呢?
你是否只会在理论上和数学公式上推导数据库内核, 但是从没亲自做过数据库内核的实现呢?
你是否对于数据库的实现只是道听途说, 自己却从未见过数据库内核的代码实现呢?
你是否天天忙于企业战略,自己却已遗忘了实际缔造一个数据库内核的手段呢?
本次悟世科技董事长亲自出马,为各位讲解数据库Tianmu引擎的代码实现!
由此你不再拾人牙慧, 只会天天在PPT上画图忽悠老板!
由此你不再理论和现实脱节, 知道了很多却过不好这一生!
由此你不再知其然而不知其所以然, 再被人用各种学术名词忽悠!
由此你将脱离庸俗的混子型开发者, 成为掌控代码之力的实干家!
内容规划:
- 给出上一讲的链接, 让听者熟悉
- 引入Tianmu引擎的整体目录结构, 简略介绍每个目录的功能
- 开始引入一条语句Q, 先现场执行, 查看结果。
- 仅包含单独的子查询, 参考Q16, 但是要削减数据量
- 耗时不超过1秒内
- 需要由nested loop策略实现, 以讲解最基础的策略
- 打开EA, 用时序图逐个的讲解SQL执行时遇到的模块,
- 现场打开GDB, 对每一个关键的函数调用堆栈进行说明, 讲解如何将理论和代码结合
- mysql插件式引擎的handler层与Tianmu层的接口的交互
- 讲解查询优化器的输入和输出
- 输入为yacc编译后的数据结构
- 输出为经过查询优化器调整后的逻辑流
- 简单的说明查询优化器有逻辑优化和物理优化, 并明确SQL层与Tianmu层的优化
- 希望了解SQL层的优化的人可以详细阅读 JOIN::optimize
- 着重讲解Tianmu的处理: 所谓知识网格的数据过滤
- 有必要亲自向听者讲解一些工具的使用
- perf火焰图的生成
- jenkins流水线工具的使用及对工作流效率的提升
- hexdump二进制查看工具
- gdb的使用
- 向听者说明下一讲将会讲解如何在代码层面做查询优化