mysql
文章平均质量分 93
七层汉堡王
别浮躁,浮躁花了时间学不到真东西。多静下心来深入点研究,等待自己的蜕变。
展开
-
MySQL事务原理之MVCC与SQL执行流程
MVCC(Multi-Version Concurrency Control) 介绍 MySQL在实现读已提交和可重复读隔离级别的时候通过MVCC来实现。 例如上一篇介绍事务隔离级别的中可重复读。对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性,避免了频繁加锁互斥,而在串行化隔离级别为了保证较高的隔离性是通过将所有操作加锁互斥来实现的。 什么是MVCC 多版本并发控制 主要核心原理,利用mysql的undo日志版本链。和当前已经提交、正在进行、还未生成的事务生成一个事务快照(read-view)原创 2021-03-07 16:59:40 · 507 阅读 · 1 评论 -
事务隔离级别以及锁的实现
概述 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。接下来,我们会深入讲解这些机制,让大家彻底理解数据库内部的执行原理。 事务 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomic原创 2021-03-07 13:26:27 · 854 阅读 · 2 评论 -
性能实战之MySQL索引优化
Explain工具介绍 使用explain关键字,可以模拟优化器执行sql语句。并将优化器执行的优化结果反馈出来。通过这些结果我们可以找到我们的sql或者表的瓶颈。注意explain不是真的帮我们执行了sql只是做了分析。 Explain分析示例 官方文档:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html DROP TABLE IF EXISTS `actor`; CREATE TABLE `actor` ( `id` int(11)原创 2021-02-28 15:13:06 · 866 阅读 · 2 评论 -
MySQL索引实现原理
索引 什么是索引? 一句话索引是排好序的一种数据结构。 因为排好序MYSQL就可以快速的查找。对于有序的数据查找是非常快的。 MYSQL有哪几种数据结构的索引? 二叉树 红黑树 Hash表 B-Tree 二叉树 每个节点下可以挂两个节点,左边比自己小右边比自己大。 缺点: 有可能数据都比34大,或者都比34小的情况下,就变成了链表。 极端情况下退化成链表 红黑树 解决了二叉查找树的线性问题;进行平衡性 缺点: 随着数据量的增加例如1000w条数据。这个树的的高度非常的高。 B-Tree 上面看到二原创 2021-02-27 19:07:41 · 207 阅读 · 0 评论