MySQL之原理
创始人
2025-05-29 07:28:03
0

文章目录

  • 一、索引和存储引擎(MyISAM和InnoDB)以及B+树的结构
    • 1.1 MyISAM
    • 1.2 InnoDB
    • 1.3 联合索引
    • 1.4 索引的一些特点
  • 事务
  • MySQL执行过程与BufferPool缓存机制

一、索引和存储引擎(MyISAM和InnoDB)以及B+树的结构

1.1 MyISAM

- 是MySQL5.5版本之前默认的存储引擎、速度比Innode更快。只有非聚簇索引
  • B+树:MyISAM
    在这里插入图片描述

1.2 InnoDB

- 是MySQL5.5版本及之后默认的存储引擎,存储数据更加安全,支持自适应哈希(自己决定是hash还是B+)
- 一定有聚簇索引,但是其他索引都是非聚簇索引
  • B+树:InnoDB

在这里插入图片描述
- 因为B+树是有序的,修改和插入数据效率会更高,所以自增索引比较好。

  • hash树:InnoDB
    在这里插入图片描述

1.3 联合索引

在这里插入图片描述

1.4 索引的一些特点

  • 最左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列
  • 不在索引上做任何操作(计算、函数、改变数据类型),会导致索引失败而扫描全表。

事务

  • 事务:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性。mysql默认情况下,自动提交事务

  • 特性

    • 原子性(Atomicity):当前事务的操作要么同时成功,要么同时失败,是由我们的undo log日志保证。
    • 一致性(Consistency):使用事物的最终目的,由业务代码正确逻辑保证。
    • 隔离性(Isolation):在事物并发执行时,他们内部的操作不能互相干扰。
    • 持久性(Durability):一个事务一旦被提交,在数据库中的改变就是永久的,提交后就不能再回滚。由redo 日志记录的。
  • 隔离性/隔离级别: innodb有四种隔离级别,级别越高事务隔离性越好,但性能越低,而隔离机制是由mysql的各种锁以及MVCC机制来实现

    • read uncommit(读未提交):有脏读问题 : 未提交的更改数据,读的时候会读到。就是脏读问题
    • read commit(读已提交):有不可重复读问题 :只能读取已经提交的数据, 但是一个事务中多次读取同一个数据可能不同,就是不可重复读问题。(高并发的用rc)
    • repeatable read(可重复读):有脏写问题: 读取提交数据,在一个事务中,多次读取同一条数据的时候,都是和第一次读取是一样的,即使数据改变在这个事务中还是不变的。就是脏写问题。原理:MVCC,有一个绑定关系,还有事务的号。见下面**(传统公司经常出报表的)**
    • serializable(串行):解决上面全部问题。 原理:写的时候的时候加上读锁。
  • MVCC(类似于copy on write)
    在这里插入图片描述

  • 脏读如何规避缺点

    • 用乐观锁:乐观锁就是在更新的时候会判断一下在此期间别人有没有去更新这个数据,也就是 不采用数据库自身的锁机制,而是通过 程序来实现 。在程序上,我们可以采用 版本号机制 或者 CAS(时间戳) 机制 实现。 乐观锁适用于多读的应用类型, 这样可以提高吞吐量 。

MySQL执行过程与BufferPool缓存机制

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...