MySQL数据库的常见考点

news2024/11/19 10:28:14

文章目录

      • 1、ACID
        • 事务原理
        • 事务持久性
        • 事务原子性
        • MVCC基本概念
        • MVCC基本原理
        • undo log
        • undo log版本链
        • readview
        • MVCC实现原理
        • RC读已提交
        • RR可重复读
        • MVCC实现原理
        • 总结
      • 2、并发事务引发的问题
      • 3、事务隔离级别
      • 4、索引
        • 4.1、索引概述
        • 4.2、索引优缺点
        • 4.3、索引结构
        • 二叉树
        • B-Tree树
        • B+Tree树
        • B+Tree优化
        • Hash索引
        • 面试题
      • 索引分类
        • 聚集索引和二级索引
        • 回表查询
        • InnoDB主键索引的B+tree高度为多高呢?
        • 索引语法
        • 慢查询日志
        • SQL性能分析
        • explain执行计划
      • 共享锁
      • 排他锁


1、ACID

image-20230201110516214

事务原理

image-20230201183115209

事务持久性

image-20230201184355749

事务原子性

image-20230201184847275

MVCC基本概念

image-20230201185341645

MVCC基本原理

image-20230201185547843

undo log

image-20230201193124540

undo log版本链

image-20230201193916668

readview

image-20230201195741866

MVCC实现原理

image-20230201200202115

RC读已提交

image-20230201201859451

RR可重复读

image-20230201202757006

MVCC实现原理

image-20230201202953875

总结

image-20230201203504311

2、并发事务引发的问题

image-20230201111810443

3、事务隔离级别

image-20230201112426384

注意:事务隔离级别越高,数据越安全,但性能越低

image-20230201114502158

4、索引

4.1、索引概述

image-20230201121618812

4.2、索引优缺点

image-20230201121723698

4.3、索引结构

二叉树

image-20230201122729877

B-Tree树

image-20230201124016293

B+Tree树

image-20230201125911225

B+Tree优化

image-20230201130137365

Hash索引

image-20230201155613366

Hash索引的特点

image-20230201160329135

面试题

image-20230201161040465

索引分类

image-20230201162108409

image-20230201162309066

聚集索引和二级索引

image-20230201162522169

回表查询

image-20230201162713316

InnoDB主键索引的B+tree高度为多高呢?

image-20230201163329831

索引语法

image-20230201164342554

慢查询日志

image-20230201170827235

SQL性能分析

image-20230201171916941

explain执行计划

image-20230201175550239

image-20230201175947637

共享锁

共享锁,又称读锁、S锁。上厕所就相当于修改操作。当事务给行加了共享锁,此时行只能进行读操作,而不能进行写操作。别的事务也只能给其加共享锁,不能加排他锁。

排他锁

排他锁,又称写锁、X锁。当加了排他锁之后,就相当于把洗手间的门关上了,别人不能进去洗手、化妆之类的。也就是说不能进行写操作以及读操作,其他事务不能给其再加锁了。

对于排他锁大家的理解可能就有些差别,我当初就犯了一个错误,以为排他锁锁住一行数据后,其他事务就不能读取和修改该行数据,其实不是这样的。排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。

mysql InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,如果加排他锁可以使用select …for update语句,加共享锁可以使用select … lock in share mode语句。

所以加过排他锁的数据行在其他事务种是不能修改数据的,也不能通过for update和lock in share mode锁的方式查询数据,但可以直接通过select …from…查询数据,因为普通查询没有任何锁机制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/191663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试组合生成器-allpairspy

1、前言 在我们写功能用例时,常常会遇到多个参数有很多的选项,而如果想把这些参数值都要覆盖执行的话,工作量可想而知。那有没有什么办法既可以减少用例数量,也可以保证用例质量又降低测试时间成本,本篇将介绍一款工具…

关于机房精密空调监控系统,你想了解的都在这里!

机房精密空调是针对现代电子设备机房规划的专用空调,它的作业精度和可靠性都要比一般空调高得多。在计算机机房中的设备是由很多的微电子、精细 机械设备等组成,而这些设备运用了很多的易受温度、湿度影响的电子元器件、机械构件及资料,所以精…

Unreal学习笔记2-绘制简单三角形

文章目录1. 概述2. 详论2.1. 代码实现2.2. 解析:Component2.3. 解析:材质2.4. 解析:包围盒2.5. 解析:Section3. 其他4. 参考1. 概述 之所以写这个绘制简单三角形的实例其实是想知道如何在Unreal中通过代码绘制自定义Mesh&#xf…

网页开发:MySQL和Python案例

目录 一、MySQL的概念和引入 二、MySQL指令 1、数据库管理(文件夹) 2、数据表的管理(文件) 3、数据行操作 三、常用的数据类型 四、员工管理案例 1、使用MySQL内置工具(命令) 2、Python代码实现 ①…

Linux学习之常用基本命令【2】

文章目录一 文件内容查看1.1 catcatcat 由第一行开始显示1.2 tactactac 由最后一行开始显示1.3 nlnlnl 显示行号1.4 moremoremore 翻页1.5 lesslessless 翻页1.6 headheadhead 显示前几行1.7 tailtailtail 显示后几行1.8 拓展:LinuxLinuxLinux 链接概念二 VimVimVim…

Ubuntu18.04.6 配置固定ip、ssh登录、root账号

上文讲解了如何下载安装ubuntu,https://blog.csdn.net/weixin_47491957/article/details/128839639 ubuntu在安装完成后,是不能进行ssh登录、且没有root账号,本文带来如何配置ssh登录及root账号 在做这些设置之前,我们要确定ip固…

【手写 Promise 源码】第十三篇 - Promise.allsettled 和 Promise.any 的实现

一,前言 上一篇,主要实现了 Promise 静态 API(类方法):Promise.race,主要涉及以下几个点: 测试原生 Promise.race 的使用;Promise.race 的功能与特性分析;Promise.race…

10、声明和创建字符串

目录 一、声明字符串 二、创建字符串 (1)String(char a[]) (2)String(char a[], int offset, int length) (3)String(char[] value) 一、声明字符串 在Java语言中字符串必须包含在一对双引号&#xf…

记录每日LeetCode 2325.解密消息 Java实现

题目描述: 给你字符串 key 和 message ,分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下: 使用 key 中 26 个英文小写字母第一次出现的顺序作为替换表中的字母 顺序 。 将替换表与普通英文字母表对齐,形成对照表。…

【Flink】详解StreamGraph

概述 没有看上一期的小伙伴请先看上一期【Flink】浅谈Flink架构和调度,上一期的一个核心内容就是 Flink 中的执行图可以分成四层:StreamGraph → JobGraph → ExecutionGraph → 物理执行图。 今天我们好好谈论一下StreamGraph,StreamGraph…

WPF MaterialDesignIn 收银系统(2)主界面

前言 接上一篇,既然登陆页面搞定了,接下来就是登陆成功后跳转的主界面了。 界面 思考 到了这一步,我们就要开始思考,怎么来丰富我们的应用,最少需要哪些东西、功能、模块、数据等等,才能支撑起一个收银系统…

java分支语句

流程控制1.1流程控制语句概述1.2流程控制语句分类顺序结构顺序结构是程序中最简单最基本的结构。分支结构(if,switch)循环结构(for,while,do...while)if语句2.1if语句格式1//格式 if(关系表达式){ 语句体; }执行流程:首先计算关系表达式的值如果关系表达…

每日一练10——井字棋密码强度等级

文章目录井字棋思路:代码:密码强度等级思路:代码:井字棋 题目链接: 思路: 井字棋,是一种在3*3格子上进行的连珠游戏,三个相同就代表获胜。 井字棋有四种情况表示当前玩家获胜&…

MySQL 面试题(一):索引失效的几种情况

❤️ 博客首页:水滴技术 🚀 支持水滴:点赞👍 收藏⭐ 留言💬 🌸 订阅专栏:MySQL 教程:从入门到精通 文章目录一、like 以通配符 % 开头的索引会失效二、is not null 无法使用索引&a…

SGI STL二级空间配置器源码剖析(1)

之前大概写过SGI STL相关的东西有关SGI STL,讲了讲空间配置器的原理,这一系列就剖析一下源码。 目录 下面就看看重要成员信息: 两个辅助接口函数: 关于C的STL的空间配置器allocator的实现就是分了四部分: allocate&…

云原生学习——容器的基本概念和Kubernetes 核心概念

https://developer.aliyun.com/learning/course/572/detail/7786什么是容器(Container)?什么是镜像(docker)?分层和复用运行后名称为 demo,进程是top命令二、容器的生命周期数据卷是一个特殊的目录四、容器 VS VM虚拟机一、什么是 Kubernetes…

KD:Distilling the Knowledge in a Neural Network 原理与代码解析

paper:Distilling the Knowledge in a Neural Networkcode:https://github.com/megvii-research/mdistiller/blob/master/configs/cifar100/kd.yaml存在的问题训练阶段,我们可以不考虑计算成本和训练时间,为了更高的精度训练一个很…

小程序提升篇-npm、数据共享、分包、自定义tabBar

npm 包的使用1.1 npm限制小程序支持npm第三方包,提高开发效率,有以下三种限制:不支持依赖node.js内置库包不支持依赖浏览器内置对象的包不支持依赖C插件的包限制较多,因此小程序可以使用的包不多1.2 Vant Weapp是一套开源的小程序…

带你读懂——频率响应与采样频率之间的关系

频响范围 频率响应:不同频率下的输入信号经过系统后响应之后的输出信号增益。大白话就是,输入信号频率是xxx Hz,幅值为yyy mg,观察此时的输出信号幅值为AyAyAy mg,此时升高或降低了AAA倍。 电压增益计算公式&#xff…

浅读人月神话笔记(2)

读书笔记:今日翻书浅读,从《为什么巴比伦塔会失败》开始至《干将莫邪》结束,巴比伦塔的建造对当下项目推进有广泛借鉴意义,今天这几个章节在PMBOK中有一些可以互相对照学习的内容,《为什么巴比伦塔会失败?》…