MySQL:表的内连接和外连接、索引
文章目录
- 1.内连接
- 2.外连接
- 2.1 左外连接
- 2.2 右外连接
- 3.综合练习
- 4.索引
- 4.1见一见索引
- 4.2 硬件理解
- 4.3 MySQL 与磁盘交互基本单位(软件理解)
- 4.4 (MySQL选择的数据结构)索引的理解
- 4.5 聚簇索引 VS 非聚簇索引
- 5.索引操作
- 5.1 创建索引
- 5.2 查询索引
- 5.3 删除索引
1.内连接
内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连
接,也是在开发过程中使用的最多的连接查询。

前面学习的都是内连接!

2.外连接
外连接分为左外连接和右外连接
2.1 左外连接
如果联合查询,左侧的表完全显示我们就说是左外连接
右侧的表按条件进行拼接!


2.2 右外连接
如果联合查询,右侧的表完全显示我们就说是右外连接。


3.综合练习

4.索引
索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确的 create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。
索引你就可以理解成数据结构,链表啊啥的。
常见索引分为:
主键索引(primary key)
唯一索引(unique)
普通索引(index)
全文索引(fulltext)–解决中子文索引问题。
索引需要大量的数据才能体现效果,所以这里给大家准备了一个表,大家可以导入
链接:https://pan.baidu.com/s/1q6nPDLYCLiVprfnqensU0g 提取码:563w
–来自百度网盘超级会员V3的分享
这个表里面有800万条记录,所以导入可能需要花费一段时间!
4.1见一见索引

4.2 硬件理解

4.3 MySQL 与磁盘交互基本单位(软件理解)
MySQL 作为一款应用软件,可以想象成一种特殊的文件系统。它有着更高的IO场景,所以,为了提高基本的IO效率, MySQL 进行IO的基本单位是 16KB

4.4 (MySQL选择的数据结构)索引的理解

为何MySQL和磁盘进行IO交互的时候,要采用Page的方案进行交互呢?用多少,加载多少不香吗?
如上面的5条记录,如果MySQL要查找id=2的记录,第一次加载id=1,第二次加载id=2,一次一条记录,那
么就需要2次IO。如果要找id=5,那么就需要5次IO。但,如果这5条(或者更多)都被保存在一个Page中(16KB,能保存很多记录),那么第一次IO查找id=2的时
候,整个Page会被加载到MySQL的Buffer Pool中,这里完成了一次IO。但是往后如果在查找id=1,3,4,5
等,完全不需要进行IO了,而是直接在内存中进行了。所以,就在单Page里面,大大减少了IO的次数。
为啥选择B+树:

4.5 聚簇索引 VS 非聚簇索引
其中, InnoDB 这种用户数据与索引数据在一起索引方案,叫做聚簇索引
当然, MySQL 除了默认会建立主键索引外,我们用户也有可能建立按照其他列信息建立的索引,一般这
种索引可以叫做辅助(普通)索引。
对于 MyISAM ,建立辅助(普通)索引和主键索引没有差别,无非就是主键不能重复,而非主键可重复。

提示:索引的本质就是数据结构(B+树)!!!
5.索引操作
5.1 创建索引

5.2 查询索引

5.3 删除索引
①第一种方法-删除主键索引:
alter table 表名 drop primary key;
②第二种方法-其他索引的删除:
alter table 表名 drop index 索引名;
例:mysql> alter table user10 drop index idx_name;
索引名就是show keys from 表名中的 Key_name 字段
③第三种方法方法: drop index 索引名 on 表名
mysql> drop index name on user8;
相关文章:
MySQL:表的内连接和外连接、索引
文章目录 1.内连接2.外连接2.1 左外连接2.2 右外连接 3.综合练习4.索引4.1见一见索引4.2 硬件理解4.3 MySQL 与磁盘交互基本单位(软件理解)4.4 (MySQL选择的数据结构)索引的理解4.5 聚簇索引 VS 非聚簇索引 5.索引操作5.1 创建索引5.2 查询索引5.3 删除索引 1.内连接 内连接实…...
Chrome备份数据
Chrome备份数据 1、 导出谷歌浏览器里的历史记录 参考:https://blog.csdn.net/qq_32824605/article/details/127504219 在资源管理器中找到History文件,文件路径: C:\Users\你的电脑用户名\AppData\Local\Google\Chrome\User Data\Default …...
visual studio远程调试
场景一(被远程调试的电脑) 确定系统位数 我这里是x64的 找到msvsmon.exe msvsmon.exe目录位置解释: “F:\App\VisualStudio\an\Common7\IDE\”是visual studio所在位置、 “Remote Debugger\”是固定位置、 “x64”是系统位数。 拼起来就是…...
if __name__ == “__main__“
在Python中,if __name__ "__main__": 这行代码非常常见,它用于判断当前运行的脚本是否是主程序。这里的 __name__ 是一个特殊变量,当Python文件被直接运行时,__name__ 被自动设置为字符串 "__main__"。但是&…...
数据识别概述
数据识别场景 数据识别确实可以分为两种主要类型:直接识别和间接识别(或称为从文本中发现)。下面我将详细解释这两种类型: 直接识别: 定义:直接识别是指直接判断某个数据是否符合特定的标准或条件。应用场…...
pytorch统计学分布
1、pytorch统计学函数 import torcha torch.rand(2,2) print(a) print(torch.sum(a, dim0)) print(torch.mean(a, dim0)) print(torch.prod(a, dim0))print(torch.argmax(a, dim0)) print(torch.argmin(a, dim0)) print(torch.std(a)) print(torch.var(a)) print(torch.median…...
【网络安全学习】漏洞利用:BurpSuite的使用-03-枚举攻击案例
如何使用BurpSuite进行枚举攻击 1.靶场选择 BurpSuite官方也是有渗透的教学与靶场的,这次就使用BurpSuite的靶场进行练习。 靶场地址:https://portswigger.net/web-security 登录后如下图所示,选择**【VIEW ALL PATHS】**: 找…...
redis 消息订阅命令
在 Redis 中,消息订阅和发布是一种用于实现消息传递的机制。主要命令包括 SUBSCRIBE、UNSUBSCRIBE、PUBLISH 和 PSUBSCRIBE 等。下面是如何使用这些命令的详细说明和示例。 1. SUBSCRIBE 命令 SUBSCRIBE 命令用于订阅一个或多个频道,以接收这些频道发布…...
springboot接口防抖【防重复提交】
什么是防抖 所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。要针对用…...
每日一题——Python实现PAT乙级1026 程序运行时间(举一反三+思想解读+逐步优化)五千字好文
一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码结构和逻辑 时间复杂度 空间复杂度 代码优化建议 总结 我要更强 …...
还在Excel中管理您的持续改进项目吗?
对于大多数公司来说,Microsoft Excel是一种可靠的资源,它确实提供了极高的价值。然而,当它被用来跟踪持续改进项目时,它的价值就减少了。浪费时间从不同内部系统的不同报告中收集数据,会占用推动重要变革的时间。让我们…...
CentOS 7 内存占用过大导致 OOM Killer 杀掉了 Java 进程
说明 Linux进程被杀掉(OOM killer),查看系统日志 oom killer 详解 测试服务器, 有一个 Java 应用, 其进程偶尔会消失掉, 已排除人为杀死的可能 该服务器内存常年处于快被占满的状态, 怀疑是内存原因, 导致服务器主动杀死了该应用的 Java 进程…...
在postgrel中使用hints
在 PostgreSQL 中,可以使用查询提示(Query Hints)来影响查询优化器的行为,但需要注意的是,PostgreSQL 并不像一些商业数据库那样有丰富的提示语法,而是提供了一些基本的方式来引导优化器。 使用查询提示的…...
OceanBase Meetup北京站|跨行业应用场景中的一体化分布式数据库:AI赋能下的探索与实践
随着业务规模的不断扩张和数据处理需求的日益复杂化,传统数据库架构逐渐暴露出业务稳定性波动、扩展性受限、处理效率降低以及运营成本高等一系列问题。众多行业及其业务场景纷纷踏上了数据库现代化升级之路。 为应对这些挑战,7月6日,OceanB…...
Spring Boot:轻松设置全局异常处理
Spring Boot:轻松设置全局异常处理 在软件开发中,异常处理是一项至关重要的任务。对于使用Spring Boot的开发者来说,设置全局异常处理不仅可以提高代码的整洁度,还可以提升用户体验。本文将详细介绍如何在Spring Boot中轻松设置全…...
Omni3D目标检测
Omni3D是一个针对现实场景中的3D目标检测而构建的大型基准和模型体系。该项目旨在推动从单一图像中识别3D场景和物体的能力,这对于计算机视觉领域而言是一个长期的研究目标,并且在机器人、增强现实(AR)、虚拟现实(VR&a…...
前端三件套开发模版——产品介绍页面
今天有空,使用前端三件套html、css、js制作了一个非常简单的产品制作页面,与大家分享,希望可以满足大家应急的需求。本页面可以对产品进行“抢购”、对产品进行介绍,同时可以安排一张产品的高清大图,我也加入了页面的背…...
Android Bitmap 和Drawable的区别
Bitmap 和 Drawable 是 Android 图形绘制的两种常用方式,它们有各自的特点和使用场景。下面将详细解释它们之间的区别,并通过示例代码说明如何使用它们。 Bitmap 解释 Bitmap 是一种用于存储图像像素数据的类,通常用于图像处理和操作。Bit…...
Linux和windows网络配置文件的修改
Linux和windows网络配置文件的修改 网络配置文件是计算机网络管理中至关重要的一部分。正确配置网络文件可以确保计算机与网络设备之间的通信顺畅,避免网络故障。本文将详细介绍网络配置文件的修改方法,包括常见命令、使用方法举例,以及一些…...
【.NET全栈】第16章 Web开发
文章目录 前言16.1 HTML概述16.1.1 HTML的基本概念16.1.2 HTML语言的基本元素16.1.3 格式设置16.1.4 超级链接16.1.5 图像16.1.6 表格16.1.7 框架16.1.8 表单 16.2 ASP.NET Web Forms的组织16.2.1 认识ASP.NET16.2.2 Web Forms的组织 16.3 Web服务器控件16.3.1 使用Label和Text…...
避坑指南:三自由度机械臂DH参数建模与逆解求解的那些‘坑’(从理论到Matlab/Python验证)
三自由度机械臂运动学建模实战:从DH参数陷阱到逆解验证 机械臂运动学建模是机器人学中最基础却最容易踩坑的领域之一。很多工程师和学生在理论学习阶段看似掌握了DH参数法和正逆运动学推导,但一旦动手实践,总会遇到各种"诡异"的问题…...
VCAM虚拟摄像头:3大创新功能解锁安卓摄像头的无限应用场景
VCAM虚拟摄像头:3大创新功能解锁安卓摄像头的无限应用场景 【免费下载链接】com.example.vcam 虚拟摄像头 virtual camera 项目地址: https://gitcode.com/gh_mirrors/co/com.example.vcam VCAM虚拟摄像头是一款基于Xposed框架的安卓虚拟相机解决方案&#x…...
LeetCode 53. 最大子数组和 超详细题解(贪心+分治+动规)
LeetCode 53. 最大子数组和 超详细题解(贪心分治动规) 🏷️ 标签:动态规划、贪心算法、分治法、数组、经典面试题 📊 难度:简单 | 📝 题目编号:53 | 🗂️ 题型࿱…...
Elasticsearch-05-四种搜索方案
Elasticsearch-05-四种搜索方案详解 概述 Elasticsearch提供了多种搜索方案以满足不同的业务需求。本文档将详细介绍四种核心搜索方案:纯BM25、纯KNN、混合搜索和优化KNN参数,包括各自的适用场景、配置方法和实际应用。 方案1:纯BM25搜索 场景…...
5个创新方法:基于开源工具的内容访问优化方案
5个创新方法:基于开源工具的内容访问优化方案 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的数字时代,合法访问优质内容成为信息获取的关键挑战。…...
终极指南:如何用billboard.js实现机器学习预测结果的可视化展示
终极指南:如何用billboard.js实现机器学习预测结果的可视化展示 【免费下载链接】billboard.js 📊 Re-usable, easy interface JavaScript chart library based on D3.js 项目地址: https://gitcode.com/gh_mirrors/bi/billboard.js billboard.j…...
3步终极解放QQ音乐加密文件:QMCDecode全平台播放攻略
3步终极解放QQ音乐加密文件:QMCDecode全平台播放攻略 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…...
3天刷完2026最新Java高频面试题(1000 道附答案解析)
2026年金三银四一半儿快要过去了,总结了上半年各类 Java 面试题,初中级和中高级都有,包括 Java 基础,JVM 知识面试题库,开源框架面试题库,操作系统面试题库,多线程面试题库,Tcp 面试…...
YOLOv8 Detect Head 源码拆解:从张量变形到边界框解码,一步步带你理解Anchor-Free预测
YOLOv8 Detect Head 深度解析:从特征图到预测框的完整实现路径 在计算机视觉领域,目标检测一直是核心任务之一。YOLOv8作为当前最先进的实时检测器,其Detect Head模块的设计尤为精妙。本文将带您深入探索这一模块的内部工作机制,从…...
Mac环境OpenClaw排错大全:Qwen3.5-4B-Claude接口连接问题
Mac环境OpenClaw排错大全:Qwen3.5-4B-Claude接口连接问题 1. 开篇:为什么需要这份排错指南 上周我在自己的M1 MacBook Pro上部署OpenClaw时,遇到了至少五种不同的报错。从npm权限问题到模型响应超时,每个错误都让我花费数小时搜…...

