题记
深入理解SQL的底层实现,才能够像DBA一样,处理问题游刃有余,下面来聊聊分布式数据库的实现和SQL99标准基础语法
分布式数据库
分布式数据库
SQL引擎 + 存储引擎 + 分布式 (行存 + 列存)+ 事物处理
一块是底层原理的实现,另一种是基于SQL99的使用
其实广义上还有基于数据生态的引入,大数据(spark,flink,hadoops)等
数据库开发主要涉及的语言有:c,rust,python,java
竞品调研
国内自研数据库功能实现,主要是调研oracle、mysql、PG等竞品,参考一下业界顶流的数据库功能实现,来打造出自己独特的核心竞争力
国内优秀的自研数据库OceanBase、巨衫、还有其他大厂基于mysql,PG等进行修改之后开发自己的数据库
SQL层原理实现图
下图是数据库SQL层实现原理图,其中最复杂、最具挑战性的在于优化器的实现,该部分代码非常多,而且十分庞大,是数据库SQL层的核心竞争力
根据内容:我们可以知道整个SQL的实现是分为四层,整个业界的流程都是想通的
1.SQL 分析
2.SQL语法解析
3.进行优化器层
4.执行
主要涉及语法树,语法解析树,生成执行plan
数据结构涉及到,二叉树,链表,各种结构体
根据COST进行指路
另外实践写了几个常用函数
对数据库中的一些常用数据类型进行封装,另外一些常用函数
后续有单独的文章介绍SQL引擎层如何实现这些函数
1.limit offset (mysql) / rownum (oracle)
2.toDate 、 toChar(inline function)
3. extract,Round
4.grouby
5.order by
6.hint(oracle指定计划)
存储引擎层实现原理图
当时使用的数据存储是BLink tree,B+树的变种存储引擎,后续更新
分布式事物实现原理图
数据的一些融合交互
版权声明:本文为xiaochengzi0419原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。