MySQL一些基础知识

td

  1. Mysql锁分析相关 : hedengcheng博客
  2. mysql其他话题: 高性能Mysql
  3. gap lock
  4. mvcc

高可用部署方案

  • vip: 绑定vip后发送arp广播,vip会被解析到绑定vip的mac地址。
  • lvs: 内核netfilter模块支持包过滤,ipvs是一个INPUT链上的钩子函数,能够按照指定的配置在内核态转发数据包。
  • keepalied: VRRP协议,在主不可用时,按照配置的优先级选出一个主,绑定vip并且广播给其他节点(所谓ip漂移)。
  • mysql主从复制:binlog的dump线程,io读线程,中继日志,sql重放线程

主从切换高科用:MHA+半同步复制,切换过程大致几步

  1. 尝试保存master binlog
  2. 寻找最新的slave,应用diff relay log到其他所有slave,保持所有slave最新
  3. 应用master的binlog
  4. 提升master
  5. 更新其他slave的主从配置

半同步复制:一个slave写入relay log返回ack后再返回给客户端,为了解决commit和slave的ack之间crash造成主从不一致,5.7commit之前会等待slave ack。

事务实现

redo log: 保证持久性(D) undo log: 保证回滚时能找到之前的数据(C)

事务隔离:MVCC,隐藏列创建时间和删除时间,活跃事务最小id,readview。

savepoint:回滚点,细粒度控制事务。

锁:X和S锁,表锁,行锁(记录锁),间隙锁。

查询进行中的事务 https://www.cnblogs.com/zuoxingyu/p/6382585.html

https://blog.csdn.net/emoers/article/details/77971468 查询 正在执行的事务: SELECT * FROM information_schema.INNODB_TRX

查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

2021-04-14 16:33:24 +0800 yajw Update 2021-03-27 MySQL一些基础知识.md M
2021-04-14 16:07:38 +0800 yajw Update 2021-03-27 MySQL一些基础知识.md M
2021-04-14 15:41:02 +0800 yajw Update 2021-03-27 MySQL一些基础知识.md M
2021-04-14 14:31:25 +0800 yajw Update 2021-03-27 MySQL一些基础知识.md M
2021-03-27 14:49:15 +0800 yajw Copy old posts A