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

【MySQL进阶之路 | 高级篇】索引的声明与使用

1. 索引的分类

MySQL的索引包括普通索引,唯一性索引,全文索引,单列索引和空间索引.

  • 从功能逻辑上说,索引主要分为普通索引,唯一索引,主键索引和全文索引.
  • 按物理实现方式,索引可以分为聚簇索引和二级索引.
  • 按作用字段个数进行划分,分为单列索引和联合索引.

(1). 普通索引

在创建普通索引时,不附加任何限制条件,只是用于提高查询速度.这类索引可以创建在任何数据类型上,其值是否唯一或非空,要由字段本身的完整性约束条件决定.建立索引后,可以通过索引进行查询.

(2). 唯一索引

使用UNIQUE参数可以设置唯一索引,在建立唯一索引时,限制该索引的值必须是唯一的.但允许是空值.在一张表里可以有多个唯一索引.

(3). 主键索引

主键索引是一种特殊的唯一性索引.在唯一约束的基础上添加了非空的约束,一张表里只能有一个主键索引.这是由主键索引的物理实现方式决定的.因为数据存储在文件中只能按照一种顺序进行存储.

(4). 联合索引

联合索引是在表的多个字段上创建一个索引,该索引指向创建的多个字段.可以通过几个字段进行查询,但查询条件中使用这些字段的第一个字段时才会被使用.使用联合索引时遵循最左前缀原则.

(5). 全文索引

使用参数FULLTEXT可以设置索引为全文索引.在定义索引的列上支持值的全文查找,允许在这些索引列中插入空值和重复值.全文索引只能创建在CHAR, VARCHAR, TEXT类型及其系列类型的字段上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度.

(6). 小结

  • InnoDB : 支持b+树,full-text等索引,不支持hash索引.
  • MyISAM : 支持b+树,full-text等索引,不支持hash索引.
  • Memory : 支持b+树,hash索引等,不支持b+树.

2. 创建索引

MySQL支持多种方法在单个或多个列上创建索引,在创建表的定义语句中CREATE TABLE中指定索引列,使用ALTER TABLE语句在已经创建的表中创建索引,或者使用CREATE INDEX语句在已经存在的表中添加索引.

(1). 创建表时添加索引

CREATE TABLE demo1(
demo1_id INT PRIMARY KEY AUTO_INCREMENT,
demo_fname VARCHAR(15) UNIQUE KEY,
demp_lname VARCHAR(20),
INDEX demo1_index_lname(demp_lname)
);
  • 隐式的方式创建索引.在声明有主键约束,唯一性约束,外键约束的字段上,会自动的添加相关的索引.
  • 显式的方式创建普通索引.
  • 我们可以通过show index from 表名的方式来查看表中的索引.
  • 我们只能在创建表时通过定义主键约束的方式隐式定义主键约束.

(2). 创建表后添加索引

1). ALTER TABLE ... ADD...

CREATE TABLE demo2(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
books VARCHAR(20)
);ALTER TABLE demo2 ADD INDEX demo2_index_books(books);ALTER TABLE demo2 ADD UNIQUE KEY demo2_uq_name(name);show index from demo2;

4b3b5ff9183c45c2bc737a25ac78f4be.png

2). CREATE INDEX ... ON ...

CREATE TABLE demo3(
id INT PRIMARY KEY,
fname VARCHAR(20),
lname VARCHAR(20)
);CREATE INDEX demo3_index_fname ON demo3(fname);CREATE UNIQUE INDEX demo3_uq_lname ON demo3(lname);show index from demo3;

23883850d96547419d43751f0ca56c0f.png

3. 删除索引

(1). 方式1 : ALTER TABLE ... DROP

ALTER TABLE demo3 DROP INDEX demo3_index_fname;show index from demo3;

d77b64562e4b46ea91d6872f6f6a82b3.png

(2). 方式2 : DROP INDEX ... ON ...

DROP INDEX demo3_uq_lname ON demo3;

ae8afe4fbac54eb998dab6fe16bb39b5.png

注意 : 添加了AUTO_INCREMENT自增约束的列的索引是不可以被删除的.因为自增约束依赖于主键约束或唯一键约束.删除了列的索引,其约束也跟着被删除了.AUTO_INCREMENT失去了依赖的主键/唯一键约束,即会报错.

 

相关文章:

【MySQL进阶之路 | 高级篇】索引的声明与使用

1. 索引的分类 MySQL的索引包括普通索引,唯一性索引,全文索引,单列索引和空间索引. 从功能逻辑上说,索引主要分为普通索引,唯一索引,主键索引和全文索引.按物理实现方式,索引可以分为聚簇索引…...

探索Java中的设计模式:从单例到工厂模式

探索Java中的设计模式:从单例到工厂模式 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨Java中的设计模式,从经典的单…...

表单(forms)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在app1文件夹下创建一个forms.py文件,添加如下类代码: from django import forms class PersonForm(forms.Form): first_na…...

Geoserver源码解读四 REST服务

文章目录 文章目录 一、概要 二、前置知识点-FreeMarker 三、前置知识点-AbstractHttpMessageConverter 3.1 描述 3.2 应用 四、前置知识点-AbstractDecorator 4.1描述 4.2 应用 五、工作空间查询解读 5.1 模板解读 5.2 请求转换器解读 一、概要 关于geoserver的r…...

硬件开发笔记(二十一):外部搜索不到的元器件封装可尝试使用AD21软件的“ManufacturerPart Search”功能

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139869584 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

【AI大模型】GPTS 与 Assistants API

前言 2023 年 11 月 6 日,OpenAI DevDay 发表了一系列新能力,其中包括:GPT Store 和 Assistants API。 GPTs 和 Assistants API 本质是降低开发门槛 可操控性和易用性之间的权衡与折中: 更多技术路线选择:原生 API、…...

攻击者开始使用 XLL 文件进行攻击

近期,研究人员发现使用恶意 Microsoft Excel 加载项(XLL)文件发起攻击的行动有所增加,这项技术的 MITRE ATT&CK 技术项编号为 T1137.006。 这些加载项都是为了使用户能够利用高性能函数,为 Excel 工作表提供 API …...

Why RAG is slower than LLM?

I used RAG with LLAMA3 for AI bot. I find RAG with chromadb is much slower than call LLM itself. Following the test result, with just one simple web page about 1000 words, it takes more than 2 seconds for retrieving: 我使用RAG(可能是指某种特定的…...

Word页码设置,封面无页码,目录摘要阿拉伯数字I,II,III页码,正文开始123为页码

一、背景 使用Word写项目书或论文时,需要正确插入页码,比如封面无页码,目录摘要阿拉伯数字I,II,III为页码,正文开始以123为页码,下面介绍具体实施方法。 所用Word版本:2021 二、W…...

汽车汽配图纸管理、产品研发管理解决方案

汽车汽配图纸管理、产品研发管理解决方案 随着全球汽车市场的快速发展,中国汽车汽配行业迎来了前所未有的发展机遇。然而,在这一过程中,企业也面临着诸多挑战,如研发能力的提升、技术资料管理的复杂性、以及跨部门协作的困难等。为…...

小程序简单版音乐播放器

小程序简单版音乐播放器 结构 先来看看页面结构 <!-- wxml --><!-- 标签页标题 --> <view class"tab"><view class"tab-item {{tab0?active:}}" bindtap"changeItem" data-item"0">音乐推荐</view><…...

驾校预约管理系统

摘 要 随着驾驶技术的普及和交通安全意识的增强&#xff0c;越来越多的人选择参加驾校培训&#xff0c;以获取驾驶执照。然而&#xff0c;驾校管理面临着日益增长的学员数量和繁琐的预约管理工作。为了提高驾校的管理效率和服务质量&#xff0c;驾校预约管理系统成为了必不可少…...

C++ 左值右值 || std::move() || 浅拷贝,深拷贝 || 数据类型

数据类型&#xff1a; 作用&#xff1a;决定变量所占内存空间的字节大小&#xff0c;和布局方式基本数据类型&#xff1a; 算数类型&#xff1a; 整形&#xff08;bool / char……扩展集 / int / long……&#xff09;&& 浮点形&#xff08;float/double……&#xff…...

发那科机器人IO 分配

IO 信号 也称为输入\输出信号&#xff0c;是机器人与外围设备通信的电信号...

ubuntu开机怎么进入、退出命令行界面

要在Ubuntu系统开机时进入命令行界面&#xff0c;可以按照以下步骤操作&#xff1a; 在开机过程中按下Ctrl Alt F1组合键&#xff0c;这将会切换到第一个虚拟控制台&#xff0c;即命令行界面。如果Ctrl Alt F1没有生效&#xff0c;也可以尝试Ctrl Alt F2、Ctrl Alt F3…...

『FPGA通信接口』LVDS接口(4)LVDS接收端设计

文章目录 1.LVDS接收端概述2逻辑框图3.xapp855训练代码解读4.接收端发送端联调5.传送门 1.LVDS接收端概述 接收端的传输模型各个属性应该与LVDS发送端各属性一致&#xff0c;例如&#xff0c;如果用于接收CMOS图像传感器的图像数据&#xff0c;则接收端程序的串化因子、通道个…...

面试题:HTTP的body是二进制还是文本

实际上&#xff0c;HTTP的body可以是二进制数据&#xff0c;也可以是文本。HTTP协议本身不对body内容的格式做限制&#xff0c;具体格式取决于Content-Type头字段的定义。 文本数据&#xff1a; 当Content-Type头字段指定为文本类型时&#xff08;如text/plain、text/html、ap…...

5分钟带你部署一套Jenkins持续集成环境​

5分钟带你部署一套Jenkins持续集成环境 Jenkins是开源CI&CD软件领导者&#xff0c; 提供超过1000个插件来支持构建、部署、自动化&#xff0c; 满足任何项目的需要。 Jenkins的优点 持续集成和持续交付 作为一个可扩展的自动化服务器&#xff0c;Jenkins 可以用作简单的 CI…...

OpenAI突然宣布停止向中国提供API服务!

标题 &#x1f31f; OpenAI突然宣布停止向中国提供API服务! &#x1f31f;摘要 &#x1f4dc;引言 &#x1f4e2;正文 &#x1f4dd;1. OpenAI API的重要性2. 停止服务的原因分析3. 对中国市场的影响4. 应对措施代码案例 &#x1f4c2;常见问题解答&#xff08;QA&#xff09;❓…...

Bootstrap 标签

Bootstrap 标签 引言 Bootstrap 是一个流行的前端框架&#xff0c;它提供了一套丰富的组件和工具&#xff0c;帮助开发者快速构建响应式和移动优先的网页。在 Bootstrap 中&#xff0c;标签&#xff08;Badge&#xff09;是一种小巧的组件&#xff0c;用于显示计数、提示或标…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...