![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 88
咖喱ABC
互相交流,相互学习
展开
-
MySQL专题(九):MySQL主从复制架构图 什么是数据半同步 主从复制架构中的数据延迟问题,应该如何解决? 数据库高可用架构管理的工具MHA的概念
前言1.MySQL主从复制架构图2.什么是数据半同步3.主从复制架构中的数据延迟问题,应该如何解决?4.数据库高可用:基于主从复制实现故障转移【数据库高可用架构管理的工具MHA】1.MySQL主从复制架构图2.什么是数据半同步2.1:为什么提出数据半同步概念?主库将日志写入binlog文件,接着自己就提交事务返回了,也不会管从库是否接收到日志,万一此时主库的binlog还没有同步到从库,结果主库宕机了,此时数据就丢失了,即使做了高可用切换,即可把从库切换为master主库,但是里面并原创 2021-09-01 15:16:20 · 364 阅读 · 0 评论 -
MySQL专题(八):聚簇索引和非聚簇索引的深度分析 设计索引时候需要考虑到的因素 深入研究explain命令得到的sql执行进行分析 多表关联的sql语句是如何执行的?
前言:玩转MySQL索引1.针对主键之外的字段建立的二级索引,又是如何运作的?2.一个表中是不是索引弄的越多越好?3.在SQL中进行排序的时候,如何才能使用索引?4.回表查询对性能的损害以及覆盖索引是什么?5.几个常见和最基本的索引使用规则6.设计索引的时候,需要考虑到的因素7.MySQL的查询语句的执行计划分析,以及SQL优化8.多表关联的sql语句是如何执行的?9.MySQL是如何根据成本优化选择执行计划的?10.深入研究explain命令得到的sql执行进行分析1.针对主键原创 2021-09-01 15:00:18 · 338 阅读 · 0 评论 -
MySQL专题(七):磁盘数据文件中的数据页的物理存储结构 MySQL索引的运作核心 基于主键的索引是如何设计的 一颗B+树的完整由来 更新数据的时候自动维护的聚簇索引到底是什么 ?聚簇索引的小总结
前言:说明:本章开始更新实际索引相关的知识点一:前置知识点《前因》1.磁盘数据文件中的数据页的物理存储结构2.假设没有任何索引,数据库是如何查询语句搜索数据的?3.假设没有建立任何的索引,根据主键或者where其他字段条件查询数据的?4.不断在表中插入数据时候,物理存储是如何进行页分裂的?4.1.索引的运作核心,为啥主键要设计为自增呢?4.2.非自增主键引发的页分裂二:基于主键的索引是如何设计的,以及如何根据主键索引查询三:索引的页存储物理结构,是如何用B+树来实现的?《后果》四:原创 2021-09-01 11:47:49 · 210 阅读 · 0 评论 -
MySQL专题(六):MySQL锁机制(行级) MySQL锁机制(表级别) 线上数据库不稳定性的性能抖动问题
前言:这篇文章会比较简单一些,也是一个锁的插播,主要的是MySQL中的行级锁和表级锁,主要就是两个内容,出于考虑,单独抽取出来了一篇文章,尽可能的区分1.MySQL锁机制(行级)2.MySQL锁机制(表级别)3.线上数据库不稳定性的性能抖动优化实践1.MySQL锁机制(行级)1.1:首先要知道MySQL依靠什么防止脏写?依靠锁机制让多个事务更新一行数据的时候串行化,避免同时更新一行数据。《避免脏写》,更新一行数据需要从磁盘中加载对应的数据页到buffer pool的缓存中(缓存页),才能原创 2021-09-01 10:44:23 · 160 阅读 · 0 评论 -
MySQL专题(五):经典的MVCC多事务并发控制运行的隔离机制刨析 透彻解析RC和RR的区别?MVCC机制及是如何实现RC和牛叉的RR级别的?
前言:本讲主要是针对事务,和MVCC机制展开!一:MySQL运行时多个事务同时执行是什么场景?1.多个事务并发执行的时候,可能会同时对缓存页的一行数据进行更新,这个冲突如何解决?2.可能有的事务在对一行数据做更新,有的事务在查询,这里的冲突如何处理?二:透彻解析MVCC机制,MySQL是如何实现牛叉的RR级别的?1.MVCC机制的前奏:undo log版本链是个什么东西?2.基于undo log多版本链条实现的ReadView机制?2.1:案例:假设redo log之前就有一个事务插入过的原创 2021-09-01 10:15:51 · 485 阅读 · 0 评论 -
MySQL专题(四):行溢出是什么东西?表空间以及划分多个数据页的数据区的概念 数据库服务器使用RAID存储架构 深入理解redo log redo log block redo log buffer
前言:本期内容会比较多,可能部分衔接不是非常的完整,如果有错误的地方,欢迎留言指出1.行溢出是什么东西?存放磁盘的多行数据的数据页到底长什么样子?2.表空间以及划分多个数据页的数据区的概念3.MySQL数据库的日志顺序读写以及数据文件随机读写原理4.Linux操作系统的存储系统软件层原理刨析以及IO调度优化原理5.数据库服务器使用的RAID存储架构6.MySQL数据库服务器上的RAID存储架构的电池充放电原理【以及使用了RAID的SDRAM缓存机制充放电的性能抖动问题】7.回顾redo日志原创 2021-08-31 23:28:50 · 776 阅读 · 0 评论 -
MySQL专题(三):细节梳理InnoDB存储引擎中的Buffer pool缓冲区核心组件 数据库是如何初始化buffer pool 三大链表 如何通过多个buffer pool优化数据块并发性能
前言:这篇文章会比较长,专门针对InnoDB核心组件buffer pool展开分析《BUFFER POOL》一:细节梳理InnoDB存储引擎中的Buffer pool缓冲区核心组件1.如何设置buffer pool内存大小2.数据页:MySQL中抽象出来的数据单位3.磁盘上的数据页是如何与buffer pool中的缓存页对应的4.缓存页对应的描述信息是什么?二:数据库启动的时候,是如何初始化buffer pool三:buffer pool中的三大链表1.free链表2.flush链原创 2021-08-31 15:56:25 · 268 阅读 · 0 评论 -
MySQL专题(二):一条update语句在InnoDB存储引擎执行的完整链路简述 InnoDB存储引擎 Buffer pool缓冲区 undo log redo log bin log 参数配置
前言:【本期主要将SQL执行器调用存储引擎接口后,大体的执行流程,以及各个日志文件的作用】1.InnoDB存储引擎2.Buffer pool缓冲区3.undo log日志文件4.redo log日志文件以及redo log buffer缓冲区与redo log buffer缓冲区刷入disk的配置机制5.binlog日志文件以及sync_binlog参数的设置6.mysql后台线程将Buffer pool修改后的数据刷入磁盘1.InnoDB存储引擎这个相信每个人都知道这个存储引擎,引原创 2021-08-31 11:26:41 · 282 阅读 · 0 评论 -
MySQL专题(一)【初识MySQL内部的核心组件】:MySQL的驱动 数据库的连接池 MySQL的工作线程 SQL接口 SQL解析器 查询优化器 执行器组件 存储引擎接口
前言:这个暑假,你get到了吗?1.MySQL的驱动2.数据库的连接池3.MySQL的工作线程4.SQL接口5.SQL解析器6.查询优化器7.执行器组件8.存储引擎接口1.MySQL的驱动是做什么的?尤其记得刚刚学习MySQL的时候,引入的pom坐标:mysql-connector-java,这个驱动是啥玩意,其实也很简单理解,其实就是和MySQL建立网络连接:在访问数据库的时候,Java系统必须要和MySQL建立一个网络连接,这个connector就是面向Java语言的驱动。原创 2021-08-31 09:58:04 · 289 阅读 · 0 评论