架构师训练营第九周总结
数据库基本原理
数据库架构
数据库对 SQL 语句执行过程可分解为:
连接器
数据库连接器为每个连接请求分配专门内存区域,用于会话上下文管理。建立连接对数据库比较重操作,所以数据库会建立连接池,这样当处理外部请求执行 SQL 操作时候,就不需要建立连接了。
语法分析器
对 SQL 语句,生成抽象语法树。这个过程中会检查 SQL 语句是否合法。
语义分析与优化器
目的是将各种复杂嵌套 SQL 进行语义等价转化,得到有限几种关系代数计算结构,并利用索引等信息进一步进行优化。
执行计划
根据优化后抽象语法树,生成最终执行计划,最后翻译实际执行方法。
索引
索引分为聚簇索引和非聚簇索引。
聚簇索引:数据库记录和索引存储在一起。MySQL 的主键就是聚簇索引,存储在 B+树中。
非聚簇索引:叶子节点不是记录,而是聚簇索引,也就是主键。
通过非聚簇索引找到主键索引,通过主键索引找到记录的过程,称为会表。
索引的作用,可以减少遍历数据量,加快定位数据时间。但是索引也是有成本:
索引建立过程消耗较长时间(分钟级),期间对所有增删改查都进行阻塞
任何涉及索引字段的增删改,都可能涉及索引的维护,产生额外的成本
数据库事务
事务 ACID 特性,即原子性、隔离性、持久性和一致性。
事务保证是通过事务日志实现的。进行事务操作时,事务日志文件会记录更新前的数据记录,然后再更新数据库中的记录,如果全部记录都更新成功,那么事务正常结束,如果过程中某条记录更新失败,那么整个事务全部回滚,已经更新的记录根据事务日志中记录的数据进行恢复,这样全部数据都恢复到事务提交前的状态,仍然保持数据一致性。
JVM 虚拟机架构原理
JVM 组成架构
JVM 屏蔽了各个操作系统不同,为 Java 字节码提供了统一的运行环境。
评论