MySQL之索引及简单运用

索引:

什么是索引

  索引是数据库中一种非常重要的数据结构,用于帮助快速查询数据库表中的数据。它就像一本书的目录,能够让你快速定位到书中的某个具体章节或内容,而不需要一页一页地翻阅整本书。

  在数据库管理系统中,索引是对数据库表中一列或多列的值进行排序的一种结构,可以极大地提高数据检索的效率,减少数据库的I/O成本。通过使用索引,数据库系统可以不必扫描整个表来定位所需的数据,而是可以直接通过索引快速定位到数据的物理存储位置。

索引的特点:

索引的作用

  1. 提高数据检索效率:索引可以极大地加快数据检索的速度,特别是在处理大量数据时。
  2. 保证数据的唯一性:通过创建唯一索引,可以保证数据库表中每一行数据的唯一性。
  3. 实现数据的参照完整性:使用外键作为索引,可以保证数据的一致性和完整性。
  4. 加速表与表之间的连接:在进行表的连接(JOIN)操作时,索引可以显著提高查询效率。
  5. 在排序和分组时提供帮助:通过索引,数据库系统可以更快地对数据进行排序和分组。

 

索引的类型

  • B树索引:最常见的索引类型,适用于全键值、键值范围或键值前缀查找。
  • 哈希索引:基于哈希表实现,只有精确匹配索引所有列的查询才有效。
  • 全文索引:用于在大量文本数据中搜索字符串。
  • 空间索引:用于地理空间数据类型。
  • 位图索引:适用于只有很少几种不同值的列,如性别、省份等。

索引的缺点

尽管索引可以显著提高查询效率,但它们也有一些缺点:

  1. 占用额外空间:索引需要占用物理存储空间。
  2. 降低写操作的性能:在表中插入、删除或更新数据时,索引也需要被相应地更新,这可能会降低写操作的性能。
  3. 优化器负担:数据库优化器在生成查询计划时需要考虑索引,这可能会增加其负担。

 索引的创建查看与删除

 创建索引

方式1:创建表的时候创建索引

create table 表名 (               字段名1 数据类型 [完整性约束条件…],              

                                            字段名2 数据类型 [完整性约束条件…],              

                                                [unique | fulltext | spatial]   index | key              

                                                [索引名] (字段名[(长度)] [asc | desc])                 );

方式2:在已经存在的表上创建索引

create [unique | fulltext | spatial] index 索引名 ON 表名 ( 字段名[(长度)] [asc | desc] );  

方法3:使用alter table语句来创建索引

alter  table 表名 add [unique | fulltext | spatial] index                    

                                                 索引名 (字段名[(长度)] [asc | desc]);  

查看索引

# 查询索引 show create table 表名 \G

# 查询某张表中索引情况 show index from table_name;

删除索引

drop index 索引名 on 表名 

索引的小实例

 准备实验所需要的数据库和表

# 新建数据库

create database mydb15_indexstu;

# 使用该数据库

use mydb15_indexstu;

# 新建student表

create table student( sno int primary key auto_increment, sname varchar(30) not null unique, ssex varchar(2)check (ssex='男'or ssex='女')not null, sage int not null, sdept varchar(10)default'计算机'not nul1);

# 新建course表

create table course(cno int primary key not null, cname varchar(20) not null);

# 新建sc表

create table sc(sno int not null, cno varchar(10) primary key not null, score intnot null);

 处理该表

1.修改student 表中年龄(sage)字段属性,数据类型由int 改变为smallint

alter table student modify sage smallint not null;

2.为Course表中Cno 课程号字段设置索引,并查看索引

alter table course add index index_cno(cno);

show create table course\G

 

3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 

CREATE UNIQUE INDEX SC_INDEX ON sc(sno, cno);

 4.创建一视图 stu info,查询全体学生的姓名,性别,课程名,成绩

create view stu_info as  select s.sname, s.ssex, c.cname, sc.score  from student s  join sc sc on s.sno = sc.sno  join course c on sc.cno = c.cno;

 5.删除所有索引

drop index index_cno on course;

drop index SC_INDEX on sc;

本次索引实验完成,索引更方便我们找到数据,可以大量节省运行时间,让我们更快速定位到想要的数据,本次索引不是很难,大家一定跟我一样都已经掌握了,敬请期待下一期吧!!!

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

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

相关文章

设计模式 之 —— 单例模式

目录 什么是单例模式? 定义 单例模式的主要特点 单例模式的几种设计模式 1.懒汉式:线程不安全 2.懒汉式:线程安全 3.饿汉式 4.双重校验锁 单例模式的优缺点 优点: 缺点: 适用场景: 什么是单例模…

VBA实例-从Excel整理数据到Word

实现目录 功能需求数据结构复制数据到新sheet并分类数据添加序号、日期、时间三列数据添加序号列添加时间列 将名称和类别复制到word文件中将参数5和参数9中的一个复制到word文件中 实例 功能需求 1、将原始数据中不要的数据剔除 2、原始数据中增加序号、日期和时间三列数据&a…

图片上传成功却无法显示:静态资源路径配置问题解析

1、故事的背景 最近,有个学弟做了一个简单的后台管理页面。于是他开始巴拉巴拉撘框架,写代码,一顿操作猛如虎,终于将一个简单的壳子搭建完毕。但是在实现功能:点击头像弹出上传图片进行头像替换的时候,卡壳…

三星Unpacked发布会即将举行:有新款折叠屏手机,还有智能戒指

随着7月的脚步渐近,科技界的目光再次聚焦于三星,它即将在法国巴黎举办今年的第二场Unpacked发布会。这不仅是一场新品的展示,更是三星对创新科技的一次深刻诠释。 从Galaxy Z Fold 6的全新设计,到Galaxy Z Flip 6的显著升级&…

CSS实现表格无限轮播

<div className{styles.tableTh}><div className{styles.thItem} style{{ width: 40% }}>报警名称</div><div className{styles.thItem} style{{ width: 35% }}>开始时间</div><div className{styles.thItem} style{{ width: 25% }}>状态&…

《后端程序猿 · @Value 注释说明》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【Unity PC端打包exe封装一个并添加安装引导】

Unity PC端打包exe封装一个并添加安装引导 比特虫在线制作ico图标ico图标转换工具 选中打包出来的所有文件和ico图标 右键 使用RAR软件 添加到压缩文件 两个名称要相同 设置完点击确认等待压缩完成 然后就可以使用 Smart Install Maker制作引导安装程序了

解决Pycharm找不到conda可执行文件

解决&#xff1a; 在 ‘Conda 可执行文件’ 的输入框里面&#xff0c;找到并选中 anaconda\library\bin 路径下的“ conda.bat ” ,再点击‘ 加载环境 ’&#xff0c;即可出现 ‘ 使用现有环境 ’ 的输入框&#xff0c;如图所示。

【实现100个unity特效之8】使用ShaderGraph实现2d贴图中指定部分局部发光效果

最终效果 寒冰法师 火焰法师 文章目录 最终效果寒冰法师火焰法师 素材一、功能分析实现方法基本思路Unity的Bloom后处理为什么关键部位白色&#xff1f;最终结果 二、 新建URP项目三、合并图片四、使用PS制作黑白图片方法一 手动涂鸦方法二 魔棒工具1. 拖入图片进PS&#xff0…

Unity3d打包到Android

本文参考&#xff1a; Unity3D新手教程&#xff1a;如何打包发布到Android_哔哩哔哩_bilibili 一、Unity 打包Android的环境搭建 1、工具安装 Unity Hub已经集成了Android的环境搭建。 选择Add modules 然后安装Android Build Support下的所有工具。 如果各个工具都安装成功…

给Windows系统中注入服务,即windwos守护进程

最近总是在windwos环境下测试nginx&#xff0c;总是需要频繁重启nginx服务。于是考虑有没有可能把nginx加入到系统服务的操作。在网上找了一大堆资料&#xff0c;现在来总结一下&#xff01; 方法1&#xff1a;利用nssm工具实现 这是一个守护进程的软件&#xff0c;可以在win…

Optima: 一个用于 Tapestri 平台的单细胞多组学数据分析的开源 R 包

分子条形码技术的最新进展使得在单细胞水平进行下一代转录组测序成为可能&#xff0c;例如10 Genomics Chromium和DropSeq。此外&#xff0c;CITE-seq 的出现使得可以在对单个细胞进行转录组分析的基础上同时对表面蛋白进行分析。同时&#xff0c;为了表征 DNA 和蛋白质谱&…

ubuntu那些ppa源在哪

Ubuntu中的 PPA 终极指南 - UBUNTU粉丝之家 什么是PPA PPA 代表个人包存档。 PPA 允许应用程序开发人员和 Linux 用户创建自己的存储库来分发软件。 使用 PPA&#xff0c;您可以轻松获取较新的软件版本或官方 Ubuntu 存储库无法提供的软件。 为什么使用PPA&#xff1f; 正如…

添加动态云层

<template> <div class"topbox"> xx卫星管理 </div> <div class"selectbox"> <div class"title"> 卫星列表 </div> <el-table :data"tableData" style"width: 100%;height:230px;" …

亚信安慧AntDB-M负载均衡

负载均衡是分布式系统中常用的技术&#xff0c;主要是将工作任务均衡分布到系统的各个资源点上&#xff0c;可以充分利用系统资源。 AntDB-M分布式内存数据库节点角色可以分为管理节点(MN)、计算节点(CN)和数据节点(DN)三种。管理节点收到客户端连接请求后&#xff0c;会经由负…

IEEE官方列表会议 | 第三届能源与环境工程国际会议(CFEEE 2024)

会议简介 Brief Introduction 2024年第三届能源与环境工程国际会议(CFEEE 2024) 会议时间&#xff1a;2024年12月2日-4日 召开地点&#xff1a;澳大利亚凯恩斯 大会官网&#xff1a;CFEEE 2024-2024 International Conference on Frontiers of Energy and Environment Engineer…

【C#】visual studio打包winForm(依赖DLL)为安装程序exe

0.简介 IDE&#xff1a;VS2022 平台&#xff1a;C# .NetFramework4.7 WinForm界面 有GDAL、EEplus库的依赖&#xff0c;所以在其他未安装环境的电脑中功能无法使用。 1. 安装 1.1 运行文件 在VS扩展中选择管理扩展&#xff0c;Microsoft Visual Studio Installer Projects …

如何合规与安全地利用专业爬虫工具,构建企业数据竞争优势

摘要&#xff1a; 本文深入探讨了在当今大数据时代&#xff0c;企业如何通过合规且安全的方式运用专业爬虫工具&#xff0c;有效收集并分析海量信息&#xff0c;进而转化为企业独有的数据优势。我们不仅会介绍最佳实践&#xff0c;还会讨论关键技术和策略&#xff0c;帮助企业…

【网络】计算机网络基础——计算机网络背景和发展、认识网络协议、OSI七层模型、TCP/IP四层模型、网络的传输

文章目录 Linux网络1. 计算机网络背景和发展2. 认识网络协议3. OSI七层模型3.1 物理层3.2 数据链路层3.3 网络层3.4 传输层3.5 会话层3.6 表示层3.7 应用层 4. TCP/IP四层模型5. 网络的传输 Linux网络 1. 计算机网络背景和发展 开始的计算机都是独立模式&#xff08;计算机之间…

谷歌新的网站索引策略:将来可能不再为您的网站编制索引

10 年前&#xff0c;在 WordPress 上推出新博客的同时&#xff0c;Google 上的内容几乎是即时索引。 搜索引擎试图尽快向用户提供所有信息&#xff0c;这对内容创作者也有利。 然而&#xff0c;随着时间的推移&#xff0c;情况发生了变化&#xff0c;现在谷歌在索引方面变得极…