• MySQL进阶


    一、存储引擎

    1. MySQL体系架构

    在这里插入图片描述

    2. 存储引擎简介

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    show create table 表名; -- 查询该表所使用的存储引擎
    
    show engines; -- 查询当前数据库支持的存储引擎 
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    3. 存储引擎特点

    (1)innodb

    在这里插入图片描述
    在这里插入图片描述


    (2)MyISAM

    在这里插入图片描述


    (3)Memory

    在这里插入图片描述

    (4)对比

    在这里插入图片描述

    4. 存储引擎选择

    在这里插入图片描述

    5. 总结

    在这里插入图片描述

    二、索引

    1. 索引概述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    2. 索引结构

    (1)简介

    在这里插入图片描述

    在这里插入图片描述

    我们平常所说的索引,如果没有特别指明,都是指B+树结构组织的索引

    (2)Btree

    Btree也称B-Tree(Balanced Tree):多路平衡查找树

    🥗 数据结构可视化网站


    在这里插入图片描述
    在这里插入图片描述

    (3)B+Tree

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    (4)Hash

    在这里插入图片描述

    在这里插入图片描述

    (5)B+Tree的优势

    在这里插入图片描述
    相对于Btree,Btree节点上存数据的空间都用来存键值(指针),那一层就可以容纳更多的键值了

    3. 索引分类

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    回表查询

    在这里插入图片描述


    😋 小试牛刀

    在这里插入图片描述

    在这里插入图片描述

    4. 索引语法

    在这里插入图片描述

    5. SQL性能分析

    在这里插入图片描述

    😎 慢查询日志

    在这里插入图片描述

    show variables like 'slow_query_log'; -- 可以查看慢查询日志是否开启
    
    • 1

    😎 profile 详情

    在这里插入图片描述
    在这里插入图片描述


    😎 explain 执行计划

    在这里插入图片描述
    在这里插入图片描述

    6. 索引使用

    在这里插入图片描述

    (1)最左前缀法则

    在这里插入图片描述

    (2)索引失效情况

    😜 范围查询索引失效问题
    在这里插入图片描述


    😜 索引列运算

    在这里插入图片描述


    😜 字符串不加引号

    在这里插入图片描述


    😜 模糊查询

    在这里插入图片描述

    (3)索引使原则

    在这里插入图片描述


    在这里插入图片描述
    MySQL是否使用索引,取决于数据的比例,并非固定!!

    (4)SQL提示

    在这里插入图片描述

    (5)覆盖索引

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    在这里插入图片描述

    (6)前缀索引

    在这里插入图片描述
    在这里插入图片描述

    (7)单列索引和联合索引

    在这里插入图片描述


    在这里插入图片描述

    7. 索引设计原则

    在这里插入图片描述

    8. 总结

    在这里插入图片描述
    在这里插入图片描述

    三、SQL优化

    1. 插入数据

    🌸 insert 插入

    在这里插入图片描述

    🌸 批量插入

    在这里插入图片描述

    2. 主键优化

    🌸 页分裂

    在这里插入图片描述
    在这里插入图片描述

    🌸 页合并

    在这里插入图片描述

    🌸 主键设计原则

    在这里插入图片描述

    3. order by 优化

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4. group by 优化

    在这里插入图片描述

    5. limit 优化

    在这里插入图片描述

    6. count 优化

    在这里插入图片描述

    7. update 优化

    在这里插入图片描述

    8. 总结

    在这里插入图片描述

    四、视图、存储过程、触发器

    1. 视图

    🐷 简介

    在这里插入图片描述
    在这里插入图片描述


    🐷 检查选项

    在这里插入图片描述
    在这里插入图片描述


    🐷 视图的更新

    在这里插入图片描述


    🐷 视图的作用

    在这里插入图片描述

    2. 存储过程

    (1)基本语法

    在这里插入图片描述


    🐷 特点

    🍑 封装,复用
    🍑 可以接受参数,也可以返回数据
    🍑 减少网络交互,提升效率


    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (2)变量

    🐷 系统变量

    在这里插入图片描述
    在这里插入图片描述


    🐷 用户自定义变量

    在这里插入图片描述
    在这里插入图片描述


    🐷 局部变量
    在这里插入图片描述

    (3)if 分支

    在这里插入图片描述

    (4)参数

    在这里插入图片描述

    (5)case 分支

    在这里插入图片描述

    (6)循环

    🐷 while 循环

    在这里插入图片描述


    🐷 repeat 循环

    在这里插入图片描述


    🐷 loop 循环

    在这里插入图片描述

    (7)游标

    在这里插入图片描述

    (8)条件处理程序

    在这里插入图片描述

    3. 存储函数

    特殊的存储过程【了解即可,一般用存储过程】
    在这里插入图片描述

    4. 触发器

    👵 简介

    在这里插入图片描述

    👵 基础语法

    在这里插入图片描述

    5. 总结

    在这里插入图片描述

    五、锁

    1. 简介

    🐷 介绍

    在这里插入图片描述
    🐷 分类

    在这里插入图片描述

    2. 全局锁

    在这里插入图片描述
    👨‍🏫 只读不写


    在这里插入图片描述


    在这里插入图片描述

    3. 表级锁

    在这里插入图片描述


    🐷 表锁

    在这里插入图片描述

    读锁不会阻塞其他客户端的读,但是会阻塞写。写锁既会阻塞其他客户端的读,又会阻塞其他客户端的写.


    🐷 元数据锁(meta data lock,MDL)

    在这里插入图片描述


    🐷 意向锁

    在这里插入图片描述


    在这里插入图片描述

    🐷 行级锁

    在这里插入图片描述


    🍑 行锁

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述


    🍑 间隙锁

    在这里插入图片描述

    🐷 总结

    在这里插入图片描述

    六、InnnoDB引擎

    1. 逻辑存储结构

    在这里插入图片描述
    在这里插入图片描述

    2. 架构

    在这里插入图片描述


    🍤 内存架构

    ✨ 缓冲区
    在这里插入图片描述

    ✨ 变更缓冲区

    在这里插入图片描述
    ✨ 自适应哈希
    在这里插入图片描述
    ✨ 日志缓冲区
    在这里插入图片描述


    🍤 磁盘架构

    ✨ 表空间

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    🍤 后台线程

    在这里插入图片描述

    3. 事务原理

    🍤 概述

    在这里插入图片描述
    在这里插入图片描述

    🍤 redolog

    在这里插入图片描述

    🍤 undolog

    在这里插入图片描述

    4. MVCC

    🍤 基本概念

    在这里插入图片描述

    🍤 隐藏字段

    在这里插入图片描述

    🍤 undolog日志


    在这里插入图片描述

    🍤 readview

    在这里插入图片描述
    在这里插入图片描述

    🍤 原理分析

    ✨ RC级别(read committed:读已提交

    在这里插入图片描述

    ✨ RR(repeatable read:可重复读

    在这里插入图片描述

    🍤 实现原理

    在这里插入图片描述

    🥞 总结

    在这里插入图片描述

    七、MySQL管理

    1. 系统数据库

    在这里插入图片描述

    2. 常用工具

    🍤 mysql

    在这里插入图片描述

    🍤 mysqlAdmin

    在这里插入图片描述

    🍤 mysqlbinlog

    在这里插入图片描述

    🍤 mysqlshow

    🍤 mysqldump

    在这里插入图片描述

    🍤 mysqlimport / source

    在这里插入图片描述

    3. 总结

    在这里插入图片描述

    🌸 总结

    在这里插入图片描述

  • 相关阅读:
    IDEA 不推荐使用 @Autowired 注解的原因
    MVC vs MVP
    java基础10题
    Web攻防05_MySQL_二次注入&堆叠注入&带外注入
    黑马点评--分布式锁
    Socket编程(C语言实现)——TCP协议(网络间通信AF_INET)的流式(SOCK_STREAM)+报式(SOCK_DGRAM)传输
    三子棋小游戏(万字详解)可以自定义棋盘大小
    计算机找不到MSVCR120.dll,MSVCR120.dll丢失的三种解决方法
    一个前端大佬的十年回顾 | 漫画前端的前世今生
    蓝桥杯实战应用【算法代码篇】-希尔排序(附python、Java、C++和C语言代码)
  • 原文地址:https://blog.csdn.net/lt6666678/article/details/134004566