常见的网站推广方式有哪些,住房和城乡建设部网站共有产权,怎么做网站访问统计,建设工程资料下载网站一、MySQL查询执行过程
1.MySQL分层结构 MySQL8.0没有查询缓存的功能了,如果频繁修改缓存,将会损耗性能查询流程就按照分层结构就可以清楚,只要了解各个组件的各自功能就行分析器主要分析语法和词法是否正确优化器主要优化SQL语句
二、MySQL更新执行过程
更新主要涉及两个重…一、MySQL查询执行过程
1.MySQL分层结构 MySQL8.0没有查询缓存的功能了,如果频繁修改缓存,将会损耗性能查询流程就按照分层结构就可以清楚,只要了解各个组件的各自功能就行分析器主要分析语法和词法是否正确优化器主要优化SQL语句
二、MySQL更新执行过程
更新主要涉及两个重要的日志,redolog(重做日志)和binlog(归档日志)
1.redolog
如果没有日志记录的话,每一条更新语句将会写进磁盘,再从磁盘找到对应的数据进行更新,将会非常损耗性能InnonDB引擎会先更新内存,再写redolog日志,等系统空闲的时候,再将redolog日志写入磁盘.即使数据库宕机,恢复后也能将未写入磁盘的redolog写入磁盘,保证数据更新这就是InnoDB提供的crash-safe能力redolog是固定大小的文件,如果日志文件不够写,将会先擦除一部分再写
2.binlog
binlog是server层提供的归档日志,会记录下更新的逻辑,比如将1变为2
3.两种日志区别
redolog是InnoDB提供的,支持crash-safe能力;binlog是server层提供的redolog是循环写的,日志文件会用完;binlog是追加写的
4.更新过程 示例:给ID2的C字段加1 查找ID2的数据,如果内存有直接返回,没有则从磁盘查找,再返回给内存将ID2的C字段1,将数据更新到内存将记录写入redolog,此时redolog处于prepare状态告知执行器可以提交事务,写binlog日志redolog提交事务,更新完成
(1)两阶段提交 为什么会两阶段提交redolog和binlog呢,原因就是为了误删数据后,恢复数据能与历史数据达成一致.我们可以进行反证 假设先提交redolog,当发生了一次crash-safe,恢复后redolog记录的日志可以更新数据,但是binlog没有记录.之后使用binlog恢复删除的数据,会造成该条数据不一致假设先提交binlog后crash,但是redolog并没有记录该条数据的更新,所以机器恢复后redolog不会更新该条数据,但是使用binlog恢复删除的数据则会更新该条数据,也会造成数据不一致