Arthur解析系列之Mysql
文章平均质量分 71
系统化的对mysql面试点进行深入浅出描述
愿好
科技推动人类物质文明发展,人文推动人类精神文明发展。
展开
-
mysql关键字之exists和in原理剖析
mysql关键字之exist和in原理剖析原创 2023-01-30 09:57:04 · 962 阅读 · 1 评论 -
MVCC多版本并发控制原理
(1)MVCC原理实现思路:通过undo_log多版本链条,加上开启事务时产生的readView(不同隔离级别有不同产生策略),然后再有一个查询的时候,根据readView进行判断的机制,来决定读取哪个版本的数据。实现了多事务并发执行,保证只能读开启事务前提交的数据和当前事务修改的数据,其他情况都不会读到。解决的是读一致性问题innodb为每行记录实现了三个隐藏字段,用于形成undo_log链DB_TRX_ID事务id:插入或更新行的最后一个事务的事务ID(创建版本号),自动递增DB_ROL原创 2021-08-08 23:43:12 · 804 阅读 · 0 评论 -
事务的概念、特性和隔离级别以及他们解决了什么问题
事务概念;是指作为单个逻辑工作单元执行的一系列操作(SQL语句)。这些操作要么全部执行,要么全部不执行。mysql里只有innodb和NDB支持事务事务特性:acid(酸)个特性原子性Atomicity: 操作同时成功或同时失败,依赖undolog实现一致性Consistency: 事务的执行的前后数据的完整性保持一致隔离性Isolation: 事务之间是透明的(互相不可见);普通select会用MVCC实现,更新/删除/插入会用LBCC(加锁)实现持久性Durability: 一旦原创 2021-08-08 22:04:39 · 578 阅读 · 0 评论 -
explain命令分析sql执行计划,语句执行流程
思路(概念->使用->12个字段分析->语句执行流程->流程涉及的bufferpool)概念:explain是模拟优化器分析sql和在服务端如何执行sql的过程的工具。使用:通过慢查询日志,找到对应项目中的sql。通过在执行查询的sql最前面加上explain关键字,依据ID自大到小,相同自上到下分析,有没有走索引,索引是否可以优化。字段分析:总共12个字段:Id: 查询表顺序依据id由大到小,id相同自上而下Select_type:表示查询的类型,六种,原创 2021-08-08 16:57:59 · 464 阅读 · 0 评论 -
InnoDB的索引的数据结构、原理、使用原则、失效场景及设计思路
页概念及结构图:Innodb_page_size,是Innodb在存取数据时,最小的基本单位为1页,默认大小为16KB,这样做的好处是:可以有效减少IO操作,提高性能;(页:包含页目录(即索引的概念,相当于用户数据区域的索引),用户数据区域,页头,头尾指针)。结构原理演变思路:存数据到用户数据目录-》遍历全部数据用页目录优化-》多页参照页目录优化变成B+树初始时,页目录和用户数据区域为空,由于MySql对于新插入的数据,会默认按照主键进行排序,用来提高查询性能。需遍历全部数据行,对其原创 2021-08-08 16:33:29 · 586 阅读 · 0 评论 -
索引有哪些并解释下回表查询,索引覆盖和索引下推,如何开启慢查询?
索引分两类聚集索引和非聚集索引聚集索引决定数据在磁盘上的物理排序,叶子节点存储行记录,一个表只能有一个聚集索引。类似与字典目录索引。在innodb中主键索引是聚集索引(主键只是确定表格逻辑组织方式)。如果表没有定义主键,则第一个not NULL unique列是聚集索引, 否则,InnoDB会创建一个隐藏的row-id作为聚集索引;非聚集索引(二级索引):叶子节点存储聚集索引所覆盖的数据和主键值 ,有5种索引(普通索引、联合索引、哈希索引、全文索引、唯一索引)普通索引:单个字段的b+树索引联原创 2021-08-08 14:40:58 · 114 阅读 · 0 评论 -
存储引擎概念及常用引擎
存储引擎概念:就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)show engines; // 查看mysql所支持的存储引擎,以及从中得到mysql默认的存储引擎。默认的就是innodb,常用引擎:InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有原创 2021-08-08 10:19:21 · 282 阅读 · 0 评论 -
锁机制原理,mysql相关的锁(按粒度、模式),行锁算法,死锁原因即对策
1、简单锁机制原理2、锁粒度划分,页级锁(BDB引擎特有)、行级锁、表级锁、全局锁页级锁:介于行锁和表锁之间。表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。行级锁:行锁,InnoDB通过给索引上的索引项加锁来实现,否则就是表锁,行锁最容易发生死锁。分为共享锁和排他锁。共享锁和排他锁如果没有命中索引会变成表锁。共享锁和排他锁是互斥的。只有共享锁和共享锁不互斥。共享锁(S锁):查询条件后加lock in share mode排他锁(独占锁/X写原创 2021-07-30 21:26:51 · 213 阅读 · 0 评论