MySQL-索引

目录

🌴概念

🌵作用

🌱使用场景

🎄使用

查看索引

创建索引

删除索引


🌴概念

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

🌵作用

数据库中的索引,的目的就是为了加快查询的速度,select这样的查询操作,默认是按照"遍历"的方式,来完成查询的。比如,指定where语句,条件查询,遍历每一行,把这一行数据代入到条件中,看是否成立,成立就留下,不成立就pass掉。遍历,是O(N)级别的复杂的,注意,此处的每一次取一行,都是要读硬盘的!虽然也是O(N)和内存中的操作的O(N)是有本质区别的。
所谓的"索引”就相当于是在数据库中,构建一个特殊的"目录”(一系列特定的数据结构,硬盘)
通过这样的数据结构,加快查询的速度,尽可能避免针对表数据的遍历操作。

🔅数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
🔅索引所起的作用类似书籍目录,可用于快速定位、检索数据。
🔅索引对于提高数据库的性能有很大的帮助。

🌱使用场景

引入索引,是能够提高查询的速度,也会付出一些代价
1)引入索引,需要消耗额外的存储空间.
2)引入索引之后,确实能提高查询的效率,但是可能会影响到增删改的效率.
(有的时候增删改会更慢,有的时候会更快,有的时候,没啥变化)


索引,有利有弊,但是即使如此,实际开发中,还是比较鼓励使用索引的.
1)硬盘往往不是主要矛盾.
2)对于增删改也不一定都是负面影响,也可能会触发一些正面效果。另一方面,很多业务场景,查询的频率比增删改要高很多.

要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:
⚫️数据量较大,且经常对这些列进行条件查询。
⚫️该数据库表的插入操作,及对这些列的修改操作频率较低。
⚫️索引会占用额外的磁盘空间。
满足以上条件时,考虑对表中的这些字段创建索引,以提高查询效率。
反之,如果非条件查询列,或经常做插入、修改操作,或磁盘空间不足时,不考虑创建索引。

🎄使用

查看索引

show index from 表名;

🌖案例:查看学生表已有的索引

创建索引

对于非主键、非唯一约束、非外键的字段,可以创建普通索引

create index 索引名 on 表名(列名);

🌖案例:创建班级表中,name字段的索引

🛑创建索引,也是一个"危险操作",如果是针对空表,或者表中的数据比较少(几干,几万…)创建索引,就谈不上危险不危险,一旦表的数据量比较大,干万级别,此时创建索引操作,就可能会触发大量的硬盘IO,直接把机器就搞的卡死住了。所以在最初建表的时候都要有哪些索引,提前规划好,创建好。
 

删除索引

drop index 索引名 on 表名;

☄️只能删除,咱们自己创建的索引,不能删除自动生成的 

💢删除索引,也是危险操作,要能够慎重对待

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

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

相关文章

自动化办公|xlwings简介

xlwings 是一个开源的 Python 库,旨在实现 Python 与 Microsoft Excel 的无缝集成。它允许用户使用 Python 脚本自动化 Excel 操作,读取和写入数据,执行宏,甚至调用 VBA 脚本。这使得数据分析、报告生成和其他与 Excel 相关的任务…

【物联网】ARM核介绍

文章目录 芯片产业链1. CPU核(1)ARM(2)MIPS(3)PowerPc(4)Intel(5)RISC-V 2. SOC芯片(1)主流厂家(2)产品解决方案 3. 产品 ARM核发展1. 不同架构的特点分析(1)VFP(2)Jazelle(3)Thumb(4)TrustZone(5)SIMD(6)NEON ARM核(ARMv7)工作模式1. 权限级别(privilege level)2. ARM process…

SuperMap iClient3D for Cesium立体地图选中+下钻特效

在大屏展示系统中,对行政区划数据制作了立体效果,如果希望选中某一行政区划进行重点介绍,目前常见的方式是通过修改选中对象色彩、边线等方式进行实现;这里提供另外一种偏移动效的思路,并提供下钻功能,让地…

Linux的常用命令(三)

目录 六、网络通信命令 1.网络通信命令ping 2.网络通信命令ifconfig 七、系统命令 1. 系统命令shutdown 2. 系统命令reboot 八、vi编辑器 六、网络通信命令 1.网络通信命令ping 命令名称:ping 命令所在路径:/usr/sbin/ping 执行权限&#xff…

SQL Prompt 插件

SQL Prompt 插件 注:SQL Prompt插件提供智能代码补全、SQL格式化、代码自动提示和快捷输入等功能,非常方便,可以自行去尝试体会。 1、问题 SSMS(SQL Server Management Studio)是SQL Server自带的管理工具&#xff0c…

《小迪安全》学习笔记05

目录 读取: 写入: (其中的读取和写入时我认为比较重要的,所以单独做成了目录,这里的读取和写入是指在进行sql注入的时候与本地文件进行的交互) 好久没发博客了。。。从这篇开始的小迪安全学习笔记就开始…

SpringCloud源码-Ribbon

一、Spring定制化RestTemplate,预留出RestTemplate定制化扩展点 org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration 二、Ribbon定义RestTemplate Ribbon扩展点功能 org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguratio…

Linux 常用命令 - chmod 【改变文件或目录权限】

简介 “chmod” 这个命令来自于 “change mode” 的缩写,用于更改文件或目录的访问权限。这个命令允许用户设定谁可以读取、写入或执行一个文件。在 Linux 和其他类 Unix 系统中,文件权限对系统安全和用户隐私至关重要。 Linux/Unix 的文件调用权限分为…

Linux系统离线部署MySQL详细教程(带每步骤图文教程)

1、登录官网下载对应的安装包 MySQL :: Developer Zone 2、将压缩包上传到服务器上,这里直接上传到/usr/local路径上 使用sftp工具上传到/usr/local目录上 3、解压压缩包 tar -xf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz 4、将mysql-8.0.39-linux-glibc2.17…

PyTorch使用教程(1)—PyTorch简介

PyTorch是一个开源的深度学习框架,由Facebook人工智能研究院(FAIR)于2016年开发并发布,其主要特点包括自动微分功能和动态计算图的支持,使得模型建立更加灵活‌。官网网址:https://pytorch.org。以下是关于…

Linux浅谈——管道、网络配置和客户端软件的使用

目录 一、管道 1、管道符 2、过滤功能 3、特殊功能 4、扩展处理 5、xargs命令扩展 二、网络配置 1、ifconfig查看网络信息 2、配置文件详解 网卡配置文件位置 3、systemctl查看网卡状态 4、systemctl启动/重启/停止网卡 三、客户端软件 1、什么是SSH 2、常用SSH终…

arcgis中生成格网矢量带高度

效果 1、数据准备 (1)矢量边界(miain.shp) (2)DEM(用于提取格网标高) (3)DSM(用于提取格网最高点) 2、根据矢量范围生成格网 模板范围选择矢量边界,像元宽度和高度根据坐标系来输入,我这边是4326的,所以输入的是弧度,输出格网矢量gewang.shp 3、分区统计 …

IEC103 转 ModbusTCP 网关

一、产品概述 IEC103 转 ModbusTCP 网关型号 SG-TCP-IEC103 ,是三格电子推出的工业级网关(以下简 称网关),主要用于 IEC103 数据采集、 DLT645-1997/2007 数据采集, IEC103 支持遥测和遥 信,可接…

Android BottomNavigationView不加icon使text垂直居中,完美解决。

这个问题网上千篇一律的设置iconsize为0,labale固定什么的,都没有效果。我的这个基本上所有人用都会有效果。 问题解决之前的效果:垂直方向,文本不居中,看着很难受 问题解决之后:舒服多了 其实很简单&…

【蓝桥杯】43687.赢球票

题目描述 某机构举办球票大奖赛。获奖选手有机会赢得若干张球票。 主持人拿出 N 张卡片(上面写着 1⋯N 的数字),打乱顺序,排成一个圆圈。 你可以从任意一张卡片开始顺时针数数: 1,2,3 ⋯ ⋯ 如果数到的数字刚好和卡片上的数字…

(01)FreeRTOS移植到STM32

一、以STM32的裸机工程模板 任意模板即可 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前,我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 , 一 个 是 官 网 : http://www.freertos.org/ , 另…

金融项目实战 05|Python实现接口自动化——登录接口

目录 一、代码实现自动化理论及流程 二、脚本实现的理论和准备工作 1、抽取功能转为自动化用例 2、搭建环境(测试工具) 3、搭建目录结构 三、登录接口脚本实现 1、代码编写 1️⃣api目录 2️⃣script目录 2、断言 3、参数化 1️⃣编写数据存储文件:jso…

C# .NetCore 使用 Flurl.Http 与 HttpClient 请求处理流式响应

AI对话接口采用流式返回&#xff1a; 1、使用Flurl处理返回的数据流 using Flurl; using Flurl.Http; [HttpPost] public async Task<string> GetLiushiChatLaw() { //1、请求参数&#xff0c;根据实际情况 YourModel request new YourModel();string allStr …

南京地铁路线和站点2021-2030含规划线路shp数据arcmap地铁图坐标wgs84无偏移内容分析测评

南京地铁路线与站点数据是地理信息系统&#xff08;GIS&#xff09;中常用的一种数据格式&#xff0c;主要用来表示城市轨道交通网络。在本压缩包中&#xff0c;包含的是2021年至2030年&#xff0c;包括规划线路的南京地铁信息&#xff0c;数据类型为Shapefile&#xff08;shp&…

Web3D交互展示:重塑产品展示的新维度

在当今数字化时代&#xff0c;如何高效、直观地展示产品成为企业营销的关键一环。传统的二维图片和视频展示虽然在一定程度上能够传达产品信息&#xff0c;但往往缺乏沉浸感和互动性&#xff0c;难以满足消费者日益增长的体验需求。在此背景下&#xff0c;Web3D交互展示应运而生…