MySQL数据库学习之索引

广义平均(Generalized Mean, GeM) 本位介绍了广义平均操作的定义和简要推导,帮助大家理解其含义。 阅读详情

1 什么是索引

  • 索引是由数据表的一类或者多列组成
  • 创建索引的目的是优化数据库的查询速度
  • 创建的索引指向数据库中具体数据所在.
  • 创建了索引之后,查找数据时,就不需要遍历所有的数据,大大提高了查询效率.同时降低了服务器的负载率.

优点: 简单来说,索引就像是一本书的目录,我们可以通过这个目录找到具体的数据,从而缩短查询时间.
缺点: 创建索引和维护索引需要耗费时间,同时,索引需要占用物理空间,会给数据的维护造成麻烦.

2 索引的分类

2.1普通索引

即不应用任何限制条件的索引.

2.2唯一索引

使用unique参数修饰可以设置唯一索引,常见索引时,索引的值必须唯一,主键索引时一种特殊的唯一索引.

2.3全文索引

使用fulltest参数可以设置随用为全文索引

注意: 全文索引只能创建在char,varchar或者text类型的字段上.

2.4单列索引

只对应一个字段的索引.

2.5多列索引

在表的多个字段上创建一个索引,该索引指向创建是对应的多个字段,要想应用该索引,用户必须使用这些字段中的第一个字段.

2.6空间索引

使用 spatial 参数可以设置索引为空间索引,空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率,Mysql中只有MyISAM存储引擎支持空间索引,而且索引的字段不能为空.

3 创建索引

创建索引有三种方式:

  • 在建立数据表时创建索引
  • 已建立数据表之后添加索引
  • 修改数据表结构添加索引

3.1在建立数据表时创建索引

3.1.1 创建普通索引
CREATE TABLE score(
	id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
	`name` VARCHAR(50) NOT NULL,
	math INT(5) NOT NULL,
	english INT(5) NOT NULL,
	chinese INT(5) NOT NULL,
	INDEX(id)
);

结果:
结果:

3.1.2创建唯一索引

CREATE TABLE address(
	id INT(11) AUTO_INCREMENT  PRIMARY KEY NOT NULL,
	`name` VARCHAR(50),
	address VARCHAR(50),
	UNIQUE INDEX address(id ASC)
)CHARSET =utf8;

使用 show create table 可以查看创建表时的结构
结果:
在这里插入图片描述

3.1.3 创建全文索引
CREATE TABLE cards(
	id  INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
	`name` VARCHAR(50),
	number BIGINT (11),
	info VARCHAR(50),
	FULLTEXT KEY cards_info(info)
) ENGINE=MYISAM CHARSET =utf8;

结果:
在这里插入图片描述
备注说明:
只有MyISAM类型的数据表支持fulltext 全文索引,其他的殷勤不支持全文索引.

3.1.4 创建单列索引

创建单列索引,即在数据表的单个字段上创建索引.创建该类型的索引时不需要引入约束参数,用户只需要在建立是指定字段名即可.

CREATE TABLE telephone(
	id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
	`name` VARCHAR(50) NOT NULL,
	tel VARCHAR(50) NOT NULL,
	INDEX tel_num (tel(20))
);

说明:
数据表中的字段长度为50,二创建的索引的字段长度为20,这样做的目的是为了提高查询效率.

结果:
在这里插入图片描述

3.1.5 创建多列索引

创建多列索引只需要指定表的多个字段即可

说明:
触发多列索引的第一条件是用户必须使用索引的第一字段,如果没有用到弟子字段,则该索引不起任何作用.

#创建所列索引
CREATE TABLE information(
	id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
	`name` VARCHAR(50) NOT NULL,
	sex VARCHAR(5) NOT NULL,
	birthday VARCHAR(50) NOT NULL,
	INDEX info(`name`,sex)
)CHARSET =utf8;

结果:
在这里插入图片描述

3.1.6 创建空间索引

创建空间索引时,需要设置spatial参数,同样的 只有MyISAM类表支持该类型的索引.

# 创建空间索引
CREATE TABLE LIST (
	id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
	goods GEOMETRY NOT NULL,
	SPATIAL INDEX listinfo(goods)
)ENGINE = MYISAM;

以上的代码中,goods字段不能为空,且数据类型是geometry,该类型是空间数据类型,空间数据类型不能用其他类型代替.其他的空间数据类型还有 point,linestring,polygon等类型.

结果:
在这里插入图片描述

3.2在已建立的数据表中创建索引

格式:create [unique | fulltext |spatial ] index index_name
on table_name(属性[(length)] [ASC | DESC])

例如:创建普通索引

CREATE INDEX stuinfo ON student (studentNo);

结果:
在这里插入图片描述
其他的索引同理

3.3修改数据表结构添加索引

格式: alter table table_name ADD [unique | fulltext |spatial] index
index_name(属性名[length]) [ASC | DESC ]

例如:添加普通索引

ALTER TABLE student ADD INDEX studentName(studentName(10));

结果:
在这里插入图片描述
其他的所以同理.

4 删除索引

创建索引以后,如果用户不再需要该索引以后,则可以删除指定表的索引,被建立的索引如果不常是欧诺个,会占用系统资源,也会导致更新所读下降. 使用 drop 关键字删除索引

格式:drop index index_name on table_name;

例如:删除student表的studentName索引.

DROP INDEX studentName ON student;

结果:
在这里插入图片描述
删除其他的索引亦是如此.

python 实现一个完整的基于Python的多视角三维重建系统,包含特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能 本文介绍了一个基于Python的多视角三维重建系统的实现,涵盖了特征提取与匹配、相机位姿估计、三维重建、优化和可视化等功能。首先,系统通过安装必要的库(如OpenCV、NumPy等)并加载图像数据,初始化相机参数。接着,系统使用SIFT、SURF或ORB算法提取图像特征点,并通过FLANN或BF方法进行特征匹配,应用Lowe's ratio test筛选优质匹配。该系统为后续的相机位姿估计和三维重建奠定了基础,能够从多视角图像中恢复三维场景结构。 阅读详情

相关推荐

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一小程序源码

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一系统 系统特点: 目前已接入的 CPS 渠道: 充值:话费充值、电费充值、影视会员充值、会员卡券充值 本地团购:联联周边游 电商平台:京东、拼多多、唯品会、淘宝、抖音美团:外卖、闪购、酒店、到店、优选饿了么:外卖、商超 出行服务:滴滴打车、滴滴加油、滴滴货运、花小猪打车、高德打车、同程打车 连锁餐饮点餐:肯德基、麦当劳、百果园、奈雪的茶、瑞幸咖啡、星巴克、喜茶、汉堡王、必胜客电影票:特价电影票 注意:以上涉及到需要支付的 CPS 渠道,不需要预存!

qq_41837379的博客 3110

MySQL实战45讲——11|怎么给字段加索引?

MySQL实战45讲——11|怎么给字段加索引?

qq_51931826的博客 939

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

Mysql索引

本文介绍了Mysql的索引,可以很好的帮助初学者了解Mysql的索引类型并对其有一个清晰的认知。

m0_62946761的博客 8108

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

Cursor聊天记录迁移工具:实现跨设备AI对话同步与备份

在软件开发中,数据持久化与迁移是常见需求,尤其当工具依赖本地存储时。SQLite作为轻量级关系型数据库,因其嵌入式、零配置特性,常被用于存储应用状态与用户数据。其WAL(预写式日志)模式提升了并发性能,但也增加了数据操作复杂性。通过命令行工具与JSON序列化技术,可以实现结构化数据的提取、转换与安全迁移,这对于保障开发资产的连续性与可移植性具有重要价值。例如,在AI辅助编程场景下,开发者与AI的对话记录包含关键的问题分析、解决方案与决策逻辑,是重要的上下文资产。cursor-chat-transfer工具正

weixin_42551967的博客 533

2.1数据库-MySQL

数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。SQL (发音sequel):结构化查询语言(Structured Query Language)。SQL语句就是对数据库进行操作的一种语言。SQL是一套标准,所有的数据库厂商都实现了此标准;但是各自厂商在此标准上增加了特有的语句,这部分内容我们称为方言。这就是一个视图视图,就是让你看的见,方便查看的一张虚拟表。

老李头喽博客 3454

innovus实战攻略 | 用setUsefulSkewMode解锁时序优化的“隐藏技能”!

就像时序优化的“瑞士军刀”,参数虽多,但掌握了分类逻辑后,用起来其实很简单!如果你有更绝的用法,欢迎在评论区分享,大家一起卷起来!简单来说,它就是时序优化的“乾坤大挪移”。通过调整触发器的时钟到达时间,把关键路径的建立时间“借”给非关键路径,从而实现全局时序收敛。别急,这个命令就是你的“时序救星”!(工具最多只能借1.2ns的裕量,防止“借过头”导致新问题!这个参数能帮你兜底!(对关键路径“下死手”,确保优化到位!(设置上限,给工具套上“紧箍咒”!(直接跳过边界,避免优化反噬!(全局管理,防止“借过头”!

weixin_50820814的博客 1355

mysql-适合创建索引的11种情况

客户端把sql语句交给数据库后,需要经过数据库的优化器生成查询计划,在此期间决定是走索引查询还是进行全表扫描。本文将展示字段添加索引前后查询效率的对比,来指出哪些情况适合创建索引

ven_ture的博客 2634

Cesium 实战 28 - 三维视频融合(视频投影)

Cesium 实战 27 - 三维视频融合(视频投影)。

非科班Java出身GISer的博客 3368

【OpenClaw从入门到精通】第41篇:2026年4月最新版——从零开始搭建你的第一个安全AI助理(保姆级实战教程)

2026年3月CNCERT联合发布《OpenClaw安全使用实践指南》后,安全部署成为OpenClaw使用的核心前提。本文针对新手及进阶用户,基于官方安全指引,提供三套实战部署方案:阿里云一键部署(新手首选)、Docker容器隔离部署(进阶推荐)、本地安全安装(测试专用),并详解阿里云百炼Coding Plan API接入流程。全文涵盖环境准备、分步实操、安全加固、问题排查等全流程,所有命令可直接复制执行,无需依赖外部代码库。通过本文,读者可零基础搭建安全隔离的OpenClaw AI助理,兼顾实用性与安全性

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2199

《MySQL学习》 字符串字段添加索引技巧

如果使用普通索引,完全可以通过覆盖索引将数据返回给server层,而如果使用前缀索引,需要根据主键回表主键索引表去查询完整的email字段值,即使你将 前缀索引 的定义修改为 email(整个字段的长度) 的前缀索引,这时候虽然 index2 已经包含了所有的信息,但 InnoDB 还是要回到 id 索引再查一下,因为系统并不确定前缀索引的定义是否截断了完整信息。因此,可以建立前缀索引。除了前缀索引,其实我们还可以使用hash字段,新增一个整数字段,来保存身份证的校验码,同时在这个字段上创建索引。

纸上得来终觉浅,绝知此事要躬行 965

BDD测试用例:Playwright的MCP Server实战

Playwright MCP Server建立了大模型和真实的浏览环境之间的桥梁,可以让大模型操作多款浏览器完成测试任务。

Criss@陈磊 450

Database学习 - mysql 数据库 索引

索引   索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要. 索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能提高好几个数量级.索引相当于字段的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页查询 索引的特点:   创建与维护索引...

dixian4894的博客 123

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

mysql数据库索引学习总结

人们时常把索引比作是书本的目录,是一种用来提高数据库查询效率的方法,通过在指定字段上创建索引来提高查询效率;那么为什么使用索引可以提高效率,以及如何添加,删除和查询索引,查询创建的索引是否真正起作用,注意事项等,一一说明: 索引的定义:对数据库中某一列或者多列(创建索引时指定)中的值进行排序并与表中结构一一映射的数据结构;索引生成的具体数据结构,有可能各不相同;这属于索引的具体实现;不在此做讨论

Seeker-Wu的专栏 6532

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【MySQL数据库学习】MySQL索引(下)

本文承接《MySQL索引(上)》的内容,继续围绕 MySQL 索引展开深入讲解,重点介绍联合索引、最左前缀原则、索引下推、覆盖索引、索引失效等常见知识点,并结合 SQL 执行过程和实际查询场景,分析索引为什么能提升效率、在什么情况下会失效,以及如何根据业务需求合理创建和优化索引。通过本文,读者可以进一步理解索引设计的底层逻辑,避免盲目加索引,提升数据库查询性能和系统稳定性。

承于所学,探技术之渊;以代码求政,寻成长之道。 6141

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

MySQL数据库索引的学习

索引的基本概念索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。MYSQL中索引的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;YISAM和InnoDB存储引擎只支持BTREE索引;...

StarryDream 486

MySQL的索引学习和使用:提升你的数据库性能

索引是数据库性能优化中的关键组成部分,但它们的使用需要根据具体的应用场景仔细规划。选择合适的索引类型、定期维护索引以及合理地设计索引策略是确保数据库性能的重要措施。在数据库的世界里,索引是不可或缺的工具,它类似于图书馆的目录卡片,能帮助你快速找到所需的数据。索引虽然可以提高查询速度,但同时也会增加数据库的维护成本,特别是在数据更新非常频繁的情况下。MySQL支持多种类型的索引,选择合适的索引类型对于优化查询性能至关重要。过多的索引可能会消耗大量的磁盘空间,并可能影响写操作的性能。的查询速度,我们可以在。

master_chenchen的博客 390

【MySQL数据库学习】MySQL索引(上)

本文以“【MySQL数据库学习】MySQL索引(上)”为主题,系统介绍MySQL索引的基础知识,包括索引的概念、作用、优势以及在查询优化中的重要意义。文章将从数据库查询效率入手,分析为什么索引能够减少数据扫描范围,并结合常见使用场景说明索引对提升性能的帮助。同时,也会引出索引使用不当可能带来的维护成本和性能问题,为后续深入学习索引结构、分类及优化策略奠定基础。

承于所学,探技术之渊;以代码求政,寻成长之道。 5604

MySQL数据库学习笔记 --- 索引

本文系B站《黑马程序员 MySQL数据库入门到精通》课程学习笔记,视频课网址:https://www.bilibili.com/video/BV1Kr4y1i7ru?spm_id_from=333.788.player.switch&vd_source=23c0566fd2a5745f9a55b8adfc460734&p=27

2301_77574443的博客 1143

mysql数据库索引优化_mysql数据库索引优化学习教程

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索...

weixin_28877107的博客 82

从零开始的MySQL学习,数据库索引

文章目录一、MySQL索引概述索引的作用索引的分类二、如何创建索引普通索引唯一性索引主键索引全文索引三、查看索引四、删除索引 一、MySQL索引概述 索引的作用 设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率 特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成干倍 可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本 通过创建唯一性索引保证数据表数据的唯一性 可以加快表与表之间的连接 在使用分组和排序时,可大大减少分组和排序时间 索引的分类 普通索引 这

糖球溜溜的博客 184

mysql数据库索引优化学习教程

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。 拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,...

S14040385的博客 239

MySQL数据库学习心得:深入理解查询优化与索引构建

通过学习MySQL数据库,我深刻体会到了查询优化与索引构建在数据库管理中的重要性。未来,我将继续深入学习MySQL的高级特性,如分区表、存储过程、触发器等,以进一步提升自己的数据库管理能力。同时,我也将关注数据库新技术的发展动态,如NoSQL数据库、分布式数据库等,以拓宽自己的技术视野。最后,我想说的是,学习数据库是一个持续的过程,需要不断地实践和探索。只有真正地将所学知识应用于实际项目中,才能更好地理解和掌握数据库管理的精髓。希望我的学习心得能对大家有所帮助。

2401_85000583的博客 1352

mysql数据库学习之索引

数据库为什么要使用索引? 首先说下全表扫描,存储的最小单位是块或页,整个表就是多个块或页,我要进行查找操作就必须将所有的块或页加载进内存,然后一个一个的去查找,这样效率低下。所以我们引入索引。 举个例子,数据库就是一个字典,全表查找就是一页一页的去查找,而索引就是通过拼音首字母就去查找,这样就极大的提高了效率。 什么字段适合做索引? 在mysql中,一般主键就是非常合适的索引,但其他像唯一键,普通...

风影 286

mysql数据库索引学习

最近做的一个项目用的是mysql数据,编写sql 的时候,因为业务复杂,经常有很多表联合查询的sql需要编写,于是我就思考着,如果数据量将来打起来后,这么复杂的sql运行起来会不会慢,后人接手我的项目后,会不会因为性能原因骂我?带着问题,开始学习mysql索引相关的内容起来。学了一段,写篇文章记录一下,做个总结,也给自己留点资料。 索引的概念 在关系数据库中,索引是一种单...

qq_28940607的博客 144
上一篇: java学习之多线程
下一篇: MySQL数据学习之事务
海文宇
博客等级 码龄7年 57粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值