当前位置: 首页 > news >正文

一篇文章看懂MySQL数据库(中)

存储引擎

补充:索引是在存储引擎层实现的,不同的存储引擎它的索引结构是不同的

索引

索引概述

索引结构

索引的分类

索引语法

SQL性能分析

需要重点关注的字段:type,possible_keys,key,key_len,Extra

索引使用

验证索引效率

最左前缀法则

索引失效情况

规避范围查询索引失效:尽量使用>=或者<=

SQL提示

覆盖索引&回表查询

注:联合索引属于二级索引,叶子节点下面挂的就是对应的主键值

前缀索引

单列&联合索引

注:创建联合索引的时候要考虑顺序(因为最左前缀法则)

设计原则

小结

SQL优化

插入数据

主键优化

order by优化

创建索引时没有指定排序默认为升序(asc);

group by优化

limit优化

count优化

updata优化

注释:就是使用update语句时候where后面的字段需要有索引,此时执行该语句才是行级锁,否则是表锁会大大降低数据库的并发访问性能。

小结

视图&存储过程&触发器

视图

基本语法

视图是一张虚拟存在的表,我们可以像操作表一样去操作视图

检查选项

cascaded

--如图可知v3视图依赖v2视图,v2视图依赖v1视图。创建v3时候没有加with cascaded check option,所以进行插更删时不会检查v3创建语句的where条件而会递归去检查v2的创建条件,v2创建语句中存在with cascaded check option,所以会对其where条件进行检查并且携带检查v1的创建语句中的where条件(尽管v1创建语句没有with cascaded check option,但是使用cascaded相当于给其所依赖的视图的创建语句加了with cascaded check option。

local

--区别于cascaded:如果在有with local check option的视图创建语句往上递归检查其所依赖的视图的创建语句中不存在with local check option,则插更删则不会考虑其的where条件,不会像cascaded检查语句那样给其所依赖的视图的创建语句加检查选项

更新及作用

存储过程

介绍&基本语法

变量

系统变量

用户自定义变量

局部变量

create procedure p2()

begin

declare stu_count int default 0;

select count(*) into stu_count from student;

select stu_count;

end;

call p2();

if判断&参数&case

循环

while

repeat

loop

游标cursor&条件处理程序handler

eg.declare exit handler for not found(sqlstate '02000') close u_cursor

存储函数

用得较少,存储函数能做的事存储过程也能做

触发器

介绍

insert类型

updata类型

delete类型

小结

概述

全局锁

介绍

一致性数据备份

表级锁

表锁

--读锁会锁住本客户端的写,阻塞其他客户端的写,不锁本客户端的读和不阻塞其他客户端的读。

--写锁会阻塞其他客户端的读和写,但是不锁住本客户端的读和写。

元数据锁

意向锁

主要解决的是在innodb引擎中加的行锁和表锁的冲突问题

行级锁

介绍

行锁

--升级为了表锁,则其它客户端不能对其表的本行及其他行的数据进行操作。

间隙锁&临键锁

注释2:向右遍历到最后一个不满足查询需求时停止,给这行数据与最后一个满足查询条件的行数据之间加上间隙锁,再给这几个满足查询条件的行数据加上行锁,以及第一个满足查询条件行数据本身加锁外他与左边的数据之间的间隙也要加锁!

注释3:把范围查询到的第一个行数据以及后面满足条件的行数据和间隙都加上锁和间隙锁!

InnoDB引擎

逻辑存储结构

架构

内存结构

磁盘结构

后台线程

用于将内存结构数据刷新到磁盘所用到的后台线程

事务原理

概述

redolog

undolog

MVCC

基本概念

隐藏字段

undolog版本链

readview

通过这四个属性来决定当前这次快照读读的是哪个历史版本

原理分析

read committed隔离级别

repeated read隔离级别

小结

MySQL管理

系统数据库

常用工具

--注释:使用-T输出选项后面要 /+输出的位置(目录),txt文件会存放在mysql信任的目录下,通过show variables like '%secure_file_priv%'查看mysql信任的目录——/var/lib/mysql-files/,再执行mysqldump -uroot -pXXXX -T /var/lib/mysql-files/ db01 score,就能看到两个文件(一个txt文件和一个sql文件)。

--导入txt文件举例:mysqlimport -uroot -pXXXX db01(操作的数据库名称)/var/lib/mysql-files/score.txt(文件名)

小结

http://www.jsqmd.com/news/635048/

相关文章:

  • RTF文件中的多语言编码实战:从ANSI到Unicode的完整解析
  • 微软开源最前沿语音 AI!三合一家族:60分钟语音转文字 / 90分钟多角色合成 / 实时流式说话
  • 2026年贵州智慧停车与智能安防一站式解决方案深度指南|鼎鸿盛官方联系方式 - 精选优质企业推荐榜
  • Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接匚
  • OpenCV 疲劳检测实战:用 dlib 计算眼睛纵横比 (EAR)
  • Gemini 3.1 国内使用教程(2026 最新实测)|无需复杂环境,稳定可用方案
  • IOFILE结构体的介绍与House of orange瓤
  • Python游戏音效实战:用Pygame混音器实现背景音乐循环播放(附常见问题解决)
  • 解决Ceres安装后absei缺失问题的完整指南
  • STC15单片机定时器/计数器:16位自动重装载模式实战解析
  • Python电子书处理终极指南:如何高效使用EbookLib库进行EPUB编程
  • 宝塔面板开机自启踩坑记:从手动重启到Systemd自动化,我总结了这几点经验
  • 精选五大优质 18 导心电图机厂家推荐,适配多场景医疗需求 - 品牌2026
  • 【实战篇】【设计指南】从波特图到带宽优化:放大电路频率响应的工程实践
  • Campus-Imaotai:基于Spring Boot的茅台自动化预约系统架构深度解析与实战部署指南
  • 如何免费解锁AI编程助手:三步终极指南
  • 【限时解密】SITS2026官方未公布的隐藏维度:框架对Ollama本地模型热切换支持度、多租户Agent隔离强度、以及国产信创环境适配成熟度(麒麟V10/统信UOS实测排名)
  • EcomGPT电商大模型效果展示:AI将‘V领收腰显瘦’转化为英文SEO友好描述
  • VMagicMirror:零门槛的虚拟形象驱动软件,用键盘鼠标就能让VRM模型动起来
  • Qt 定时器(QTimer)实战指南:从基础应用到高级技巧
  • 从零到实战:在Vivado里用国产BR3109芯片搭建JESD204B收发链路(FPGA篇)
  • 浏览器自动化测试结合AI:Nanbeige 4.1-3B生成智能测试脚本
  • 写段代码教会你什么是HOOK技术?HOOK技术能干什么?棺
  • 排序——代码演示
  • Docker 容器中运行 AI CLI 工具:用户隔离与持久化卷实战指南斜
  • 【深度解析】Python异步编程:为何‘async with’必须安居于async函数之内?
  • BEAST 2:3个关键步骤掌握贝叶斯系统发育分析
  • CasRel模型部署实战:GPU算力优化下的高效SPO抽取案例
  • Qwen3-ASR-0.6B企业级运维:Prometheus+Grafana监控GPU/内存/请求QPS
  • ETM vs. Abstract Model: Key Differences and Practical Applications in Hierarchical Design