2、MySQL总结

一、基础部分

(一)、概念

关系型数据库

(二)、SQL编写

CRUD(查询、插入、更新、删除)

左右连接、内连接、子查询

(三)、存储过程、存储函数

存储过程和函数(一)-CSDN博客

(四)、触发器

二、高阶部分

(一)、索引

1. 索引底层结构

InnoDB行格式(行格式:一条记录的存储结构)

1.1. 变长字段长度列表

非必须,逆序存放

1.2. null值列表

非必须,逆序存放

1.3. 记录头信息

delete_mask:标示这条记录是否被删除 

next_record:下条记录的位置

1.4. 真实数据

row_id:指定了主键或者唯一约束列(不包含null值的唯一列),则无row_id;非必需,占6字节。

trx_id:这条数据由哪个事务生成的;事务id,必须,占6字节。

roll_pointer:这条记录上个版本的指针,必须,占7字节。

2. B树、B+树、二叉树、红黑树、Hash

B+🆚二叉树:相同的数据二叉树需要更多的IO次数,二叉树只有两个分支,存储相同的数据,树更高,IO次数更多;

B+🆚B树:B树非叶子节点也存放数据,B+树只存放索引,所以B+树单个节点的数据量更小,相同的IO次数,查询到更多的节点;B+树叶子节点间有双向链表,方便范围查询,B树没有;

红黑树:存放数据有限,只有二个分支,每个节点只存放一个数据;B+树高度更低,IO次数更少,检索速度更快;

Hash:只适合等值查询。

3. 索引类型

数据结构:B+索引、Hash索引、全文索引

物理结构:聚簇索引(叶子节点保存了所有的记录)、非聚簇索引(叶子节点只保存主键,不保存完整记录)

字段特性:唯一索引、主键索引、普通索引、前缀索引

字段个数:联合索引、单列索引

4. 覆盖索引

查询字段与联合索引一致,可以直接在非聚簇索引树的叶子结点上找到,无需回表(回表:拿着非聚簇索引树上找到的主键去聚簇索引树上找记录)。

如果一个索引包含(或者说覆盖)所有需要查询的字段的值。

5. 索引下推

联合索引,对联合索引包含的字段先做判断,直接过滤掉不满足的记录,减少回表次数。

6. 索引失效

函数计算、类型转换、最左匹配原则、like左匹配、不等于、where子句中的OR

(二)、事务

1、概念

要么不执行、要么全部执行,没有中间状态。

2、四大特性

原子性、隔离性、持久性、一致性(目的)

3、问题

脏读、不可重复读、幻读

4、隔离级别

读未提交、读已提交、可重复读(默认)、串行化

(三)、锁+MVCC(多版本并发控制)

1、锁

表锁:意向锁、自增锁(保持主键唯一自增)、元数据锁(当对一个表CRUD时,自动加读锁;表结构变更时,自动加写锁;读锁之间不互斥,写写、读写均互斥)

行锁:记录锁、间隙锁、临键锁、插入意向锁

页锁

乐观锁

显式锁、隐式锁

全局锁

死锁

2、MVCC

解决了脏读且不加锁:在读取时生成版本号,等到其他事务commit之后,才会读取最新已commit的版本号数据

RR+MVCC 解决了幻读

快照读🆚当前读

    •    当前读:每次读取的都是当前最新的数据,但是读的时候不允许写,写的时候也不允许读。select....for update语句。

    •    快照读:读写不冲突,每次读取的是快照数据。读已提交下,快照读和当前读读取的数据是一样的,都是最新的。RR下有可能读取的不是最新的数据。普通的select语句。

针对快照读:因为RR下只生成一个read view,事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,即使中途有其他事务插入数据,是查询不出这条数据的。

针对当前读:是通过临键锁解决了幻读。因为当执行select....for update(插入X锁),会加上临键锁,如果有其他事务在临键锁范围内插入一条记录,那么这个插入语句会阻塞,无法成功插入,避免了幻读。

 

(四)、日志

redo log innodb存储引擎独有的,当mysql宕机时,读取redo log来故障恢复。

undo log 用于事务回滚操作,当事务执行时发生错误或者需要回滚操作时,执行undo log,恢复到事务开始前的状态。

binary log 数据备份,用于主备、主主、主从。

(五)、Explain工具

1、type

访问类型 由高到低排序 一般至少是range

system:表中只有一条数据且统计数据是精确的

const:表示通过索引一次就找到了。主键或唯一二级索引列,与常数进行等值匹配,对单表的访问。

eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描。

ref:非唯一性索引扫描,返回匹配某个单独值的所有行。普通的二级索引列与常量进行等值匹配。

range:范围区间的记录,in,key>'a' and key<'b',between

index:出现index是sql使用了索引但是没有通过索引进行过滤,一般是使用了覆盖索引或者是利用索引进行了排序分组。

all:全表扫描

2、key_len

主要针对联合索引,实际用到的索引长度

3、rows

预估要读取的记录数,越小越好

4、Extra

索引覆盖 using index;条件下推 using index condition;使用文件排序 using filesort

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

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

相关文章

云贝教育 |【好课上新】ITSS服务工程师与服务经理认证培训

课程前言 ITSS是中国电子技术标准化研究院推出的&#xff0c;包含“IT 服务工程师”和“IT 服务经理”的系列培训。有效满足GB/T 28827.1 的符合性评估要求和ITSS服务资质升级要求。 IT 服务工程师”结合 IT服务从业人员能力规范和要求&#xff0c;从服务技术、服务技巧和服务…

【Linux】调试器-gdb使用

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux的编译器-gcc/g&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 1. 背景(A) 看大小(B) 查看ELF格式的文件 2.使用(A) 进入gdb(B) quit/q&#xff…

【码农日常】将mp4转换为逐帧图片

项目场景&#xff1a; 拍摄了一段视频记录设备工作的状态和测量仪器的实时数据。由于测量仪器岁数比较大&#xff0c;不够智能&#xff0c;遂打算将视频转换为逐帧图片进行分析。 网上没找到现成工具&#xff0c;借鉴网上大神的操作方式打算用python写一个工具。 问题描述 用…

Mybatis中collection和association的区别

在MyBatis中&#xff0c;如果我们想对一对一或者一对多的多表进行查询&#xff0c;该如何处理呢&#xff1f; MyBatis提供了下面两个标签来处理一对一、多对一、一对多的映射关系&#xff1a; association: 处理一对一、多对一 collection: 处理一对多 一对一 每个人都有身份…

一、VIsual Studio下的Qt环境配置(Visual Studio 2022 + Qt 5.12.10)

一、下载编译器Visual Studio2022和Qt 5.12.10 Visual Studio 2022 社区版就够学习使用了 Qt5.12.10 安装教程网上搜&#xff0c;一大堆 也很简单&#xff0c;配置直接选默认&#xff0c;路径留意一下即可 二、配置环境 Ⅰ&#xff0c;配置Qt环境变量 系统变量下的Path&a…

【DevOps】深入解析 Docker日志分析和服务故障排除技巧

在今天的云计算和微服务架构中&#xff0c;Docker凭借其轻量级和高效的容器化技术&#xff0c;已成为软件部署不可或缺的一部分。然而&#xff0c;随着应用复杂性的增加&#xff0c;有效的日志管理和故障排除能力成为了开发者和运维人员必须掌握的核心技能。本文将带你深入探索…

AI办公自动化-用kimi自动清理删除重复文件

在kimichat中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个编写Python脚本的任务&#xff0c;具体步骤如下&#xff1a; 1、打开文件夹D:\downloads&#xff1b; 2、哈希值比较比较里面所有的文件&#xff0c;如果文件相同&#xff0c;那么移动多余…

鲲鹏服务器ARM硬件的高字节忽略(Top Byte Ignore,TBI)

HWASan1 和HWASanIO2 等借助ARM的高字节忽略&#xff08;Top Byte Ignore&#xff0c;TBI&#xff09;的硬件特性&#xff0c;使用内存标记检测内存错误。TBI是指64位ARM机器中&#xff0c;程序64位地址中最高的字节被硬件忽略&#xff0c;实际的地址空间只有56位。我们在鲲鹏服…

群晖NAS本地搭建Bitwarden密码管理服务并实现远程同步密码托管

文章目录 1. 拉取Bitwarden镜像2. 运行Bitwarden镜像3. 本地访问4. 群晖安装Cpolar5. 配置公网地址6. 公网访问Bitwarden7. 固定公网地址8. 浏览器密码托管设置 Bitwarden是一个密码管理器应用程序&#xff0c;适用于在多个设备和浏览器之间同步密码。自建密码管理软件bitwarde…

华为配置智能无损网络综合

配置智能无损网络综合示例 适用产品和版本 安装了P系列单板的CE16800、CE6866、CE6866K、CE8851-32CQ8DQ-P、CE8851K系列交换机V300R020C00或更高版本。 安装了SAN系列单板的CE16800、CE6860-SAN、CE8850-SAN系列交换机V300R020C10或更高版本。 CE6860-HAM、CE8850-HAM系列交换…

初识FlaskMySQL实现前后端通信 全栈开发之路——后端篇(1)

全栈开发一条龙——前端篇 第一篇&#xff1a;框架确定、ide设置与项目创建 第二篇&#xff1a;介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇&#xff1a;setup语法&#xff0c;设置响应式数据。 第四篇&#xff1a;数据绑定、计算属性和watch监视 第五篇 : 组件…

02-WPF_基础(二)

3、控件学习 控件学习 布局控件&#xff1a; panel、Grid 内容空间&#xff1a;Context 之恶能容纳一个控件或布局控件 代表提内容控件&#xff1a;内容控件可以设置标题 Header 父类&#xff1a;HeaderContextControl。 条目控件&#xff1a;可以显示一列数据&#xf…

CircleCI的原理及应用详解(二)

本系列文章简介&#xff1a; 在当今快速发展的软件开发环境中&#xff0c;如何确保代码质量、提升开发效率以及快速响应市场需求成为了每个开发团队面临的重要挑战。为了解决这些问题&#xff0c;持续集成和持续部署&#xff08;CI/CD&#xff09;工具应运而生&#xff0c;它们…

前端面试题大合集4----框架篇(React)

一、React 合成事件 Dom事件流分三个阶段&#xff1a;事件捕获阶段&#xff0c;目标阶段&#xff0c;事件冒泡阶段 React在事件绑定时有一套自身的机制&#xff0c;就是合成事件。如下比较直观&#xff1a; react中事件绑定&#xff1a; <div className"dome" …

如何解决3D模型变黑或贴图不显示的问题---模大狮模型网

在进行3D建模和视觉渲染时&#xff0c;经常会遇到模型表面变黑或贴图不显示的问题&#xff0c;这可能严重影响最终视觉效果的质量。这些问题通常与材质设置、光照配置或文件路径错误有关。本文将探讨几种常见原因及其解决方法&#xff0c;帮助3D艺术家和开发者更有效地处理这些…

Java | Leetcode Java题解之第88题合并两个有序数组

题目&#xff1a; 题解&#xff1a; class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2--];} else if (p2 -1) {cur nums1[p…

Hive表数据优化

Hive表数据优化 1.文件格式 为Hive表中的数据选择一个合适的文件格式&#xff0c;对提高查询性能的提高是十分有益的。 &#xff08;1&#xff09;Text File 文本文件是Hive默认使用的文件格式&#xff0c;文本文件中的一行内容&#xff0c;就对应Hive表中的一行记录。 可…

VTK图形算法API:vtkSphereSource,球几何数据

大家好&#xff0c;我是先锋&#xff0c;专注于AI领域和编程技术分享&#xff0c;在这里定期分享计算机编程知识&#xff0c;AI应用知识&#xff0c;职场经验&#xff1b; 本系列介绍VTK图像算法API&#xff0c;后续会介绍VTK项目实践应用&#xff0c;关注我&#xff0c;不错过…

Linux中system V 标准 与 Psix标准

一. 简介 本文简单了解一下&#xff0c; Linux下 的两种标准&#xff1a; system V标准与 Psix标准。 二. Linux中system V 标准 与 Psix标准 1. Linux中system V 标准 与 Psix标准 System V 和 POSIX 是指定操作系统如何实现标准化API的两大标准。 System V 是一套标准&…

GPS与精致农业 无人机应用 农业遥感 农业类

全球定位系统是美国国防部主要为满足军事部门对海上、陆地和空中设施进行高精度导航和定位的要求而建立的。GPS系统最基本的特点是以“多星、高轨、高频、测量-测距”为体制&#xff0c;以高精度的原子钟为核心。GPS作为新一代卫星导航与定位系统&#xff0c;不仅具有全球性、全…