字节跳动青训营-数据库V1

96 阅读2分钟

image.png

image.png

SQL 引擎

SQL 引擎包括了:

  • Paser:经过词法分析、语法分析生成语法树,然后对语法树进行合法性校验。
  • Optimizer:根据 Parser 产生的语法树,根据规则或者代价产生执行计划树。
  • Executor:根据计划树进行执行,常见的执行方式是火山模型。

存储引擎

存储引擎负责了数据的底层存储、管理和访问工作。各大 RDBMS 存储引擎的设计都有不少的差异,这里选择 MySQL 的 InnoDB 存储引擎来向大家做一个介绍:

  • Buffer Pool:存储引擎位于内存中的重要结构,用于缓存数据,减少磁盘 IO 的开销。
  • Page:数据存储的最基本单位,一般为 16KB。
  • B+u Tree:InnoDB 中最常用的索引结构。

事务引擎

事务引擎实现了数据库的 ACID 能力,这里还是以 MySQL 的 InnoDB 为例来介绍数据库内部是通过哪些技术来实现 ACID:

  • Atomicity:InnoDB 中通过 undo 日志实现了数据库的原子性,通过 Undo Log,数据库可以回滚到事务开始的状态;
  • Isolation:通过 Undo Log 实现 MVCC(多版本并发控制),降低读写冲突。
  • Durability:通过 Redo Log(一种 WAL 实现方式)来保证事务在提交后一定能持久化到磁盘中。
  • Consistency:一致性本质上是一种业务层的限制。

企业实践

字节中是国内数据规模最大的互联网公司之一,公司内部有成千上万套 RDBMS 系统。这一章节还是以红包雨为案例,展示了字节是如何解决大流量、流量突增、高可靠等问题的。


作者:青训营官方账号
链接:juejin.cn/post/710112… 来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。