基础架构
mysql数据库分为service层和存储引擎层。
一条sql的执行顺序是:客户端从mysql数据库的service层的连接器获取数据库连接
经过分析器进行词法分析和语法分析(这一也会对表存不存在,字段存不存在做判断)
然后经过优化器(生成执行计划,选择索引)
执行器(操作引擎,返回结果)
存储引擎(存储数据,提供读写接口),mysql数据库的存储引擎是插件式的,你在建数据库时,是可以选的。
一般我们现在默认使用的是InnoDB。它是支持事务的存储引擎
二,执行过程中的重要日志组件
mysql数据库service层自有的日志模块 binlog(归档日志)
Binlog有两种模式,statement 格式的话是记sql语句, row格式会记录行的内容,记两条,更新前和更新后都有。
而InnoDB特有的还有一个redolog,他让数据库有了crash-safe能力。粉板和账本的例子很形象
可以把它想象成一个环状可擦的粉板,不定时的将上面记录的内容写入数据库。
他所记录的是哪个数据页哪里做了什么改动。