美文网首页
MYSQL学习笔记2 MYSQL 执行与日志系统

MYSQL学习笔记2 MYSQL 执行与日志系统

作者: 夢醒皆涳 | 来源:发表于2022-06-16 17:25 被阅读0次

    MySQL 可以分为 Server 层和存储引擎层两部分。

    不同的存储引擎共用一个 Server 层


    image.png

    查看链接

    show processlist
    

    长链接占用内存较大所以 mysql_reset_connection 初始化长链接

    缓存问题

    不建议使用mysql缓存,性能问题较大
    配置中 query_cache_type 设置成 DEMAND 取消缓存

    分析器

    • 识别关键字
    • 语法分析

    优化器

    识别使用join 表查询方式或者使用哪个索引

    执行器

    判断表是否有查询权限,一条一条查询执行

    redoLog (重做日志)

    • innodb 特有的日志 (引擎层的日志)
    • 固定大小 一个文件1G 4个文件就是4G
    • 依靠redoLog 异常重启保持数据不丢失叫做 crash-safe
    • 数据页修改了什么 物理日志
    • 循环写,覆盖写

    binlog (归档日志)

    • 所有引擎层都可以有binlog
    • 语句的原始逻辑 逻辑日志
    • 追加写 不覆盖

    执行update 语句

    image.png
    • redoLog 两阶段提交保证两份数据的一致性
    • 1.redoLog Prepare 2.binLog 3.redoLog commit 如果2->3 阶段崩溃,则数据库恢复因为有binlog,redoLog会自动提交。

    相关文章

      网友评论

          本文标题:MYSQL学习笔记2 MYSQL 执行与日志系统

          本文链接:https://www.haomeiwen.com/subject/dyfywctx.html