博客
关于我
mysql查询过程
阅读量:796 次
发布时间:2023-02-13

本文共 1208 字,大约阅读时间需要 4 分钟。

Mysql数据库基础知识总结

1. Mysql查询流程简述

Mysql接收一个查询请求后,首先会检查查询缓存。查询缓存存储了之前执行过的语句,这样可以快速返回结果,减少不必要的处理时间。如果查询未命中缓存,就进入后续处理流程。

需要注意的是,任何对表格的更新操作都会清空查询缓存。从Mysql8.0开始,查询缓存已经被移除。

在查询流程中,Mysql会依次执行以下步骤:

  • 词法分析:解析语句的结构,识别关键字、表名、列名等。

  • 语法分析:检查语句的语法是否正确,找出错误并提示位置。

  • 优化器:确定最优执行方案,例如选择合适的索引和执行顺序。

  • 执行器:实际执行SQL语句,完成数据操作。

2. Mysql数据库日志种类及作用

Mysql数据库中的日志主要有以下几种:

  • Binlog日志:记录所有DML操作(插入、更新、删除、截断、创建),不记录SELECT语句。主要用于数据复制和恢复。

  • Redo Log日志:记录物理页的修改,用于事务持久化,确保数据在崩溃后能恢复到一致状态。

  • Undo Log日志:用于事务回滚和多版本控制(MVCC),记录操作前的数据状态,支持精确回滚。

3. Binlog介绍

Binlog记录了数据库表结构和数据变更,主要用于主从复制和数据恢复。企业常采用一主多从架构,通过Binlog实现数据同步。

Binlog的主要作用包括:

  • 数据复制:从服务器与主服务器保持一致。

  • 数据恢复:在数据库故障时,利用Binlog恢复数据。

4. Redo Log介绍

Redo Log记录了在内存中修改的物理页信息,确保数据持久化。Mysql在内存修改数据后,先写入Redo Log,再写到磁盘。Redo Log采用顺序IO模式,写入速度快,恢复速度快。

Redo Log的主要优势包括:

  • 保证数据持久化:防止数据库崩溃导致数据丢失。

  • 恢复速度快:Redo Log文件体积小,恢复过程快速完成。

5. Binlog与Redo Log区别

Binlog和Redo Log在用途和内容上有明显区别:

  • Binlog记录逻辑变化:记录DML操作日志,适合用于复制和恢复。

  • Redo Log记录物理变化:记录具体页修改内容,用于数据持久化。

二者的主要区别在于:

  • Binlog用于数据复制,Redo Log用于数据持久化。

  • Binlog在事务提交时记录,Redo Log在事务开始时记录。

  • 两者在事务提交时需要保持一致性,MySQL通过两阶段提交保证一致性。

6. Undo Log介绍

Undo Log用于事务回滚和MVCC,记录操作前的数据状态。它与Redo Log不同,主要用于逻辑回滚和版本控制。

Undo Log的主要作用包括:

  • 回滚支持:允许在事务失败时精确回滚操作。

  • MVCC实现:通过版本控制,确保读写不阻塞。

Undo Log存储逻辑日志,与Redo Log物理日志不同,主要用于事务管理和数据恢复。

转载地址:http://ridfk.baihongyu.com/

你可能感兴趣的文章
mysql主从同步及清除信息
查看>>
MySQL主从篇:死磕主从复制中数据同步原理与优化
查看>>
mysql主从配置
查看>>
MySQL之DML
查看>>
Mysql事务。开启事务、脏读、不可重复读、幻读、隔离级别
查看>>
MySQL事务与锁详解
查看>>
MySQL事务原理以及MVCC详解
查看>>
MySQL事务及其特性与锁机制
查看>>
mysql事务理解
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
MySQL事务隔离级别:读未提交、读已提交、可重复读和串行
查看>>
mysql交互式连接&非交互式连接
查看>>
MySQL什么情况下会导致索引失效
查看>>
MySql从入门到精通
查看>>
MYSQL从入门到精通(二)
查看>>
mysql以服务方式运行
查看>>
mysql优化--索引原理
查看>>
MySQL优化配置详解
查看>>
mysql会员求积分_MySql-统计所有会员的最高前10次的积分和
查看>>
MySQL修改密码报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘
查看>>