美文网首页
mysql索引,锁机制,主从同步,日志分析

mysql索引,锁机制,主从同步,日志分析

作者: John13 | 来源:发表于2018-09-06 16:36 被阅读0次

mysql架构

mysql学习

MySQL系列(一)---基础知识大总结 --- 棒棒的!
MySQL系列(三)---索引
MySQL系列(四)---引擎
『浅入浅出』MySQL 和 InnoDB --- 赞
MySQL - 一次锁表排查
---很棒排查流程

MySQL深入浅出(一):SQL基础、数据类型、运算符
MySQL深入浅出(二):索引的设计原则、SQL优化、MySQL日志、备份与恢复
【MySQL】mysql死锁以及死锁日志分析
【MySQL】Mysql锁机制简介
我必须得告诉大家的MySQL优化原理

索引

1、MySQL学习之——索引(普通索引、唯一索引、全文索引、索引匹配原则、索引命中等)
2、MySQL索引设计背后的数据结构及算法详解
3、MySQL索引背后的数据结构及算法原理 -----棒棒的!
4、剖析Mysql的InnoDB索引
5、MySQL InnoDB索引介绍及优化 -----棒棒的!
6、理解MySQL——索引与优化
7、InnoDB 存储引擎体系架构
8、[MySQL FAQ]系列 -- 新手必看:一步到位之InnoDB
9、 数据库SQL优化大总结之 百万级数据库优化方案
10、MySQL 优化(一)
11、我不得不告诉大家的MySQL优化“套路”
12、mysql主键索引与非主键索引区别 --- 很棒
13、MySQL 索引优化全攻略 --查询策略参数解析
14、MySQL 覆盖索引 --覆盖索引很好
15、mysql高效索引之覆盖索引
16、MySQL使用全文索引(fulltext index) --全文索引
17、项目中常用的19条MySQL优化 --不错
18、由 B-/B+树看 MySQL索引结构
19、平衡二叉树、B树、B+树、B*树 理解其中一种你就都明白了

数据库锁,事务实现

1、数据库:Mysql中“select ... for update”排他锁分析
2、数据库的锁机制
3、mysql】细说 数据库隔离级别 及实现
4、MySQL事务隔离级别的实现原理
5、MVCC 原理探究及 MySQL 源码实现分析 -----棒棒的!
6、MySQL数据库InnoDB引擎行级锁锁定范围详解 -----棒棒的!
7、 为什么开发人员必须要了解数据库锁?

分布式,读写分离

1、理解MySQL——复制(Replication)
2、分布式系统理论(一):CAP定理
3、mysql主从复制与读写分离
4、Mysql主从同步的原理 --不错

主从同步原理

  • 同步事件有3种形式
    statement:会将对数据库操作的sql语句写入到binlog中。
    row:会将每一条数据的变化写入到binlog中。
    mixed:statement与row的混合。Mysql决定什么时候写statement格式的,什么时候写row格式的binlog。

  • 在master机器上的操作
    当master上的数据发生改变的时候,该事件(insert、update、delete)变化会按照顺序写入到binlog中。
    binlog dump线程:
    当slave连接到master的时候,master机器会为slave开启binlog dump线程。
    当master 的 binlog发生变化的时候,binlog dump线程会通知slave,并将相应的binlog内容发送给slave。

  • 在slave机器上的操作
    当主从同步开启的时候,slave上会创建2个线程。
    I/O线程:该线程连接到master机器,master机器上的binlog dump线程会将binlog的内容发送给该I/O线程。该I/O线程接收到binlog内容后,再将内容写入到本地的relay log。
    SQL线程:该线程读取I/O线程写入的relay log。并且根据relay log的内容对slave数据库做相应的操作。

mysql日志学习

1、MySQL Binlog解析
2、【原创】MySQL 之 slow log
3、说说MySQL中的Redo log Undo log都在干啥
4、MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结

  • MySQL Innodb中跟数据持久性、一致性有关的日志,有以下几种:
  • Bin Log:
    是mysql服务层产生的日志,常用来进行数据恢复、数据库复制,常见的mysql主从架构,就是采用slave同步master的binlog实现的
  • Redo Log:
    记录了数据操作在物理层面的修改,mysql中使用了大量缓存,修改操作时会直接修改内存,而不是立刻修改磁盘,事务进行中时会不断的产生redo log,在事务提交时进行一次flush操作,保存到磁盘中。当数据库或主机失效重启时,会根据redo log进行数据的恢复,如果redo log中有事务提交,则进行事务提交修改数据。
  • Undo Log: 除了记录redo log外,当进行数据修改时还会记录undo log,undo log用于数据的撤回操作,它记录了修改的反向操作,比如,插入对应删除,修改对应修改为原来的数据,通过undo log可以实现事务回滚,并且可以根据undo log回溯到某个特定的版本的数据,实现MVCC

记录锁、间隙锁、临键锁

MySQL的锁机制 - 记录锁、间隙锁、临键锁

  • 记录锁、间隙锁、临键锁,都属于排它锁;
  • 记录锁就是锁住一行记录;
  • 间隙锁只有在事务隔离级别 RR 中才会产生;
  • 唯一索引只有锁住多条记录或者一条不存在的记录的时候,才会产生间隙锁,指定给某条存在的记录加锁的时候,只会加记录锁,不会产生间隙锁;
  • 普通索引不管是锁住单条,还是多条记录,都会产生间隙锁;
  • 间隙锁会封锁该条记录相邻两个键之间的空白区域,防止其它事务在这个区域内插入、修改、删除数据,这是为了防止出现 幻读 现象;
  • 普通索引的间隙,优先以普通索引排序,然后再根据主键索引排序(多普通索引情况还未研究);
  • 事务级别是RC(读已提交)级别的话,间隙锁将会失效。

相关文章

  • mysql索引,锁机制,主从同步,日志分析

    mysql架构 mysql学习 MySQL系列(一)---基础知识大总结 --- 棒棒的!MySQL系列(三)--...

  • 主从:MySQL设置主从同步基础设置

    MySQL主从同步机制 MySQL主从同步是在MySQL主从复制(Master-Slave Replication...

  • Docker下Mysql主从环境搭建

    Mysql主从介绍 Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情...

  • MySQL主从同步

    MySQL主从同步(一)——原理详解 一、MySQL主从同步简介 MySQL主从同步,即MySQL Replica...

  • 问题册

    MySql触发器主从复制索引设置锁机制存储引擎 Web跨域JSONP原理及应用 HTTP完成《HTTP图解》 PH...

  • 读书清单

    1.计划读 领域驱动设计 11月读完 mysql索引和锁设计与原理,主从同步,分布式集群检索设计方案 codis主...

  • MySQL/XtraBackup/ProxySQL/MHA

    索引查询 MySQL程序架构简图 MySQL程序的架构 图1 图2 图3 事务日志介绍 主从复制 日志存储 增量...

  • MySQL主从介绍、配置主、配置从、测试主从同步

    MySQL主从介绍MySQL主从介绍 配置主 配置主 配置从 配置从 测试主从同步 测试主从同步

  • php mysql 读写分离

    Mysql主从同步的原理 Mysql主从同步实战 PHP+MYSQL 读写分离简单实战

  • mysql高级

    1,msql 架构2,索引优化3,查询截取分析4,主从复制5,锁机制1)msql配置文件linux系统 my.cn...

网友评论

      本文标题:mysql索引,锁机制,主从同步,日志分析

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