
MySQL
文章平均质量分 94
MySQL底层原理分析
小七mod
脚踏实地,仰望星空
展开
-
【MySQL】MySQL加锁处理分析
目录一、背景1.1 MVCC:Snapshot Read vs Current Read1.2 Cluster Index:聚簇索引1.3 2PL:Two-Phase Locking:两阶段锁1.4 Isolation Level:事务隔离级别二、一条简单SQL的加锁实现分析2.1 组合一:id主键+RC2.2 组合二:id唯一索引+RC2.3 组合三:id非...原创 2020-03-29 22:58:57 · 598 阅读 · 1 评论 -
【MySQL】MySQL有几种锁
目录一、按照对数据操作的锁粒度来分:行级锁、表级锁、页级锁、间隙锁1 行级锁2 表级锁3 页级锁二、按照锁的共享策略来分:共享锁、排他锁、意向共享锁、意向排他锁innodb的意向锁有什么作用?三、从加锁策略上分:乐观锁和悲观锁四、其他:自增锁自增锁(AUTO-INC锁)外键检测的加锁策略一、按照对数据操作的锁粒度来分:行级锁、表级锁、页级锁、间隙锁...原创 2020-03-29 22:48:11 · 18788 阅读 · 4 评论 -
【MySQL】面试必备——MySQL索引优化深入实战
目录1、创建test表(测试表)2、创建索引3、普通查询情况4、order by查询情况5、group by查询情况6、其他查询情况7、总结补充:in和exsits优化1、创建test表(测试表) drop table if exists test; create table test( id int primary key auto_incr...原创 2020-02-28 11:27:35 · 435 阅读 · 1 评论 -
【MySQL】MySQL能使用索引的情况以及创建索引注意事项
目录一、全值匹配二、匹配左边的列三、匹配列前缀四、匹配范围值五、精确匹配某一列并范围匹配另外一列六、排序七、分组八、使用联合索引进行排序和分组的注意事项九、不可以使用索进行排序或分组的情况ASC、DESC混用十、索引失效总结十一、如何建立索引11.1 考虑索引选择性11.2 考虑前缀索引十二、总结条件:一个表创建了(b,c,d)联...原创 2020-02-28 11:10:21 · 853 阅读 · 0 评论 -
【MySQL】Explain详解与索引优化实战
目录1、使用的表2、explain 中的列2.1 id列1)简单子查询2)from子句中的子查询3)union查询2.2 select_type列2.3 table列2.4 type列2.5 possible_keys列2.6 key列2.7 key_len列2.8 ref列2.9 rows列2.10 Extra列3、索引优化实战...原创 2020-02-28 11:00:09 · 1304 阅读 · 0 评论 -
【MySQL】慢查询的配置与使用
1 什么是慢查询慢查询日志,顾名思义,就是查询的比较慢的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。查询优化的过程就是先用慢查询找到所有SQL语句中查询比较慢的语句,然后再针对这些SQL语句使用explain执...原创 2020-02-28 09:50:38 · 1324 阅读 · 0 评论 -
【MySQL】索引优化中的最左前缀原则和索引下推
目录一、引入二、覆盖索引讲接下来的问题前首先讲一下联合索引的底层存储结构长什么样?联合索引的检索过程是什么样的呢?三、最左前缀原则最左前缀原则的定义四、索引下推五、小结一、引入在开始这篇文章之前,首先明确一个概念,聚集索引的B+树的每个节点就是一个索引页,索引页会根据先前规定好的度数来决定一个索引页放多少个索引值。非叶子节点只有索引区(索引...原创 2020-02-28 09:39:23 · 3347 阅读 · 1 评论 -
【MySQL】InnoDB 的索引模型(B+树)
目录一、InnoDB 的索引模型二、索引维护三、Mysql-Innodb索引二次查找解决方案3.1 为什么会造成二级查找3.2 解决方案3.2.1 索引覆盖3.2.2 延时关联四、小结一、InnoDB 的索引模型在 MySQL 中,索引是在存储引擎层实现的,所以并没有统一的索引标准,即不同存储引擎的索引的工作方式并不一样。而即使多个存储引擎支持同一种...原创 2020-02-28 09:20:46 · 1459 阅读 · 0 评论 -
【MySQL】MySQL的存储引擎和索引详解(聚集索引和非聚集索引)
目录一、MySQL存储引擎1.1 Innodb引擎1.2 MyISAM引擎1.3 InNoDB与MyISAM异同1.4 两种引擎的选择二、索引(Index)2.1 InnoDB存储引擎索引的实现2.2 MyISAM索引实现(非聚集索引)2.3 InnoDB的索引与InnoDB的索引的区别2.4 用一组实例来比较聚集索引和非聚集索引的根本区别2.4.1...原创 2020-02-26 11:51:29 · 4641 阅读 · 2 评论 -
【MySQL】InnoDB存储引擎,MyISAM存储引擎,聚集索引,非聚集索引,主键索引,二级索引他们之间的关系梳理
目录1、主键索引和二级索引2、InnoDB存储引擎2.1 总结3、MyISAM存储引擎3.1 总结4、不同存储引擎对聚集索引和非聚集索引的实现方式不同5、二次查询问题在最初学习MySQL底层原理的时候,对InnoDB和MyISAM存储引擎对聚集索引和非聚集索引的实现结构,主键索引和二级索引的概念都很混乱,网上的很多博客在一些概念上的表述也都不尽相同,现在我对之前...原创 2020-02-26 11:41:03 · 1146 阅读 · 1 评论 -
【MySQL】InnoDB行格式、数据页结构以及索引底层原理分析
目录一、MySQL架构图二、InnoDB数据页结构2.1 局部性原理2.2 InnoDB的数据页格式三、InnoDB的行格式3.1 Compact行格式3.1.1 变长字段长度列表3.1.2 NULL值列表3.1.3 记录头信息3.1.4 记录的真实数据3.2 数据溢出问题3.2.1 行溢出的数据3.2.2 记录中的数据太多产生的溢出3.3...原创 2020-02-26 11:26:16 · 3333 阅读 · 5 评论 -
【MySQL】主从复制实现原理详解
目录一、概要1.1 mysql复制的优点1.2 Mysql复制解决的问题二、MySQL 主从复制的概念三、MySQL 主从复制的主要用途3.1 读写分离3.2 数据实时备份,当系统中某个节点发生故障时,可以方便的故障切换(主从切换)3.3 高可用(HA)3.4 架构扩展四、MySQL 主从形式一主一从4.1 一主多从4.2 多主一从 (从5.7开始...原创 2020-02-25 23:41:27 · 10633 阅读 · 0 评论 -
【MySQL】MySQL分库分表详解
目录一、前言1.1 数据量1.2 磁盘1.3 数据库连接二、垂直拆分 or 水平拆分?三、垂直拆分3.1 垂直分库3.2 垂直分表3.3 垂直拆分的优缺点四、水平拆分4.1 水平分表4.2 水平分库分表4.3 水平拆分的优缺点五、几种常用的分库分表的策略5.1 根据数值范围5.2 根据数值取模5.3 根据地理位置六、分库分表...原创 2020-02-25 16:47:21 · 5434 阅读 · 5 评论 -
【MySQL】MySQL的锁与事务隔离级别详解
目录1. 锁的概述1.1 锁的定义1.2 锁的分类2. 三种锁(表锁、行锁、间隙锁)2.1 表锁(偏向于读操作)2.1.1 基本操作2.1.2 案例分析(加读锁)2.1.3 案例分析(加写锁)2.1.4 案例结论2.1.5 IS锁和IX锁2.1.6 锁的兼容性2.1.6 AUTO-INC锁2.2 行锁(偏写)2.2.1 事务的相关使用方法...原创 2020-02-25 09:38:14 · 3255 阅读 · 2 评论