MySQL-相关

安装

  1. 下载地址:http://mirrors.sohu.com/mysql/MySQL-8.0/
    安装教程:https://www.cnblogs.com/zhangkanghui/p/9613844.html
  2. 按流程执行即可,cmd以管理员身份运行
    在这里插入图片描述
  3. 使用DBeaver连接对应数据库,注意点-需要选择服务器时区
    在这里插入图片描述
    在这里插入图片描述
    4.启动bat脚本-以管理员身份运行,并执行start命令
%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&exit

@echo off
D:
cd D:\mysql\mysql-8.0.24-winx64\bin
net start MySQL
REM exit
REM @pause
@cmd /k

mysql相关
回表问题:
回表定义-指的是在InnoDB存储引擎下,二级索引查询到的索引列,如果需要查找所有列的数据,则需要到主键索引里面去取出数据。这个过程就称为回表。因为行的数据都是存在主键B+tree的叶子节点里面,二级索引的B+树叶子节点都是存放的(索引列,主键)
简单来说,回表就是 MySQL 要先查询到主键索引,然后再用主键索引定位到数据

一级索引:聚簇索引即主键索引
二级索引:非聚簇索引

一级B+Tree:叶子节点保存着键(id的值)和数据(全部字段的值)
二级B+Tree:叶子节点保存着键(索引字段的值)和数据(主键索引值)

查询 一级索引,根据一级B+Tree查询到数据,直接返回数据
查询 二级索引,根据二级B+Tree查询到对应的聚簇索引,再根据聚簇索引在一级B+Tree里查询到相应数据

查询 一级索引只需要扫描一次B+Tree。
查询 二级索引需要扫描两次B+Tree。根据二级B+Tree扫描的结果,再去一级B+Tree里进行扫描就叫回表操作。

如果使用组合索引,就可以利用覆盖索引避免回表操作
例如:表一共有五个字段:a(主键索引),b_c_d(组合索引),e(没有索引)
如果用户查询时只查 b,c,d 例:SELECT b, c, d FROM table WHERE b = 3 AND c = 7 AND d = 5;
因为查询的字段 b,c,d的值(B+Tree里的键) 已经在B+Tree里了,所以就可以直接返回,不用再拿聚簇索引去一级B+Tree里进行查询
如果查询字段为 a,b,c,d 因为a为主键索引,也保存再二级B+Tree的叶子节点里,所以也不用回表查询
如果查询字段为 a,b,c,d,e 因为e没有在这个二级B+Tree里,所以需要进行回表操作,拿着主键索引再去一级B+Tree里进行查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值