MySQL高级百科(逻辑/存储架构、事务、日志、MVCC、主从复制)

Niimp

1.mysql锁

  • 全局锁

    • 对整个数据库实例

    • 用于数据备份

    • commit前禁止DML、DDL,允许DQL

    • flush tables with read lock;  #加全局锁
      mysqldump -h(ip) -uroot -p(password) (databaseName) >(name).sql #备份命令 windows的dos执行即可
      unlock tables;  #解锁
      
  • 表级锁

    • 表锁

      • 表共享读锁(read lock)

        • 本连接以及其他连接都允许DQL,禁止DML、DDL
      • 表独占写锁(write lock)

        • 本连接允许DQL、DDL、DML,其他连接都不允许

        • #加锁
          lock tables tableName.. read/write
          #释放锁
          unlock tables
          
    • 元数据锁(MDL)–系统自动控制

      • 为避免DML与DDL冲突,保证读写正确性

        在这里插入图片描述

    • 意向锁

      • 避免DML使用的时候行锁与表锁冲突–>减少表锁的扫描次数(对行锁)–>直接找意向锁即可

        • 意向共享锁(IS)

          sql语句: select ...lock in share mode 添加
          *与表共享锁(read)兼容、表排他锁(write)互斥
          
        • 意向排他锁(IX)

          sql语句: insert update delete select...for update添加
          *与表共享锁(read)、表排他锁(write)都互斥、意向排他锁之间不会互斥
          
          select object schema,object_name,index_name,lock type,lock_mode,lock data from performance_schema.data_locks
          

          在这里插入图片描述

  • 行级锁

    • 在这里插入图片描述

    • 行锁

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      • 共享锁(S)
      • 排他锁(X)
    • 间隙锁

      • 间隙加锁不包括两端
    • 临键锁

      • 两端加间隙加锁
    • 在这里插入图片描述

2.InnoDB引擎

1.逻辑存储结构

在这里插入图片描述

在这里插入图片描述

2.内存结构与磁盘结构

1.内存结构
1.缓冲池

在这里插入图片描述

2.更改缓冲区

在这里插入图片描述

3.自适应Hash

在这里插入图片描述

4.日志缓冲区

在这里插入图片描述

2.磁盘结构
1.系统表空间、独立表空间

在这里插入图片描述

2通用表空间、撤销表空间、临时表空间

在这里插入图片描述

3.双写缓冲区、重做日志

在这里插入图片描述

3.后台线程

在这里插入图片描述

4.事务原理
1.事务回顾

2.事务解决方案

在这里插入图片描述

1.redo log

在这里插入图片描述

2.undo log

在这里插入图片描述

在这里插入图片描述

3.当前读、快照读、MVCC

在这里插入图片描述

4.MVCC实现原理
1.隐藏字段

在这里插入图片描述

#ibd2sdi是一个用于从InnoDB表空间文件中提取序列化字典信息(SDI)的实用程序,导出格式为JSON。所有的InnoDB表空间文件都存在SDI数据。
ibd2sdi name.ibd
2.undo log版本链
1.undo log

在这里插入图片描述

2.版本链

在这里插入图片描述

3.readview

在这里插入图片描述

在这里插入图片描述

1.RC级别下,进行快照读,版本提取的底层原理

在这里插入图片描述

2.RR级别下,进行快照读,版本提取的底层原理

在这里插入图片描述

4.总结

在这里插入图片描述

3.MySQL管理

1.系统数据库

在这里插入图片描述

2.常用工具
1.mysql

在这里插入图片描述

2.mysqladmin

在这里插入图片描述

3.mysqlbinlog

在这里插入图片描述

4.mysqlshow

在这里插入图片描述

5.mysqldump

在这里插入图片描述

6.mysqlimport

在这里插入图片描述

4.MySQL日志

1.错误日志

在这里插入图片描述

2.二进制日志
1.概述

在这里插入图片描述

2.日志格式

在这里插入图片描述

3.日志查看

在这里插入图片描述

4.日志删除

在这里插入图片描述

3.查询日志

在这里插入图片描述

4.慢查询日志

在这里插入图片描述

5.主从复制

1.概述

在这里插入图片描述

2.主从复制原理

在这里插入图片描述

3.配置
1.主库配置
1.服务器准备

在这里插入图片描述

2.修改配置文件

3.创建远程连接账号,并授权

2.从库配置
1.修改配置文件

在这里插入图片描述

2.登录mysql进行主库连接配置

在这里插入图片描述

3.开启同步操作

在这里插入图片描述

4.总结
image-20230726150217397

101153)]

2.登录mysql进行主库连接配置

[外链图片转存中…(img-bnCZSv10-1695455101154)]

3.开启同步操作

[外链图片转存中…(img-CbSpzcIZ-1695455101155)]

4.总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NIIMP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值