MySQL索引的创建与基本用法

文章目录

  • MySQL索引
    • MySQL索引的类型与创建方法
      • 基础索引
    • 唯一索引
    • **唯一索引的创建** ******``注意唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。``*** ***
    • 主键索引
    • 组合索引
    • **``创建组合索引时,列的顺序很重要。MySQL会按照你在创建索引时列的顺序来优化查询。如果你经常需要按照列的组合来查询数据,确保最经常使用的列排在前面。``**
    • 全文索引
    • 删除索引

MySQL索引

MySQL索引是一种数据结构,用于提高查询数据的效率。MySQL索引可以被看作是数据库表的“目录”。就像书籍的目录帮助我们快速找到特定章节的位置一样,数据库索引帮助数据库快速找到特定数据记录的位置。

MySQL索引的类型与创建方法

MySQL索引分为五种,分别为基础索引唯一索引主键索引组合索引 文本索引
MySQL中的索引类型确实可以分为几种,每种类型都有其特定的用途和特性。以下是MySQL中常见的索引类型及其简要说明:

  1. 基础索引(Primary Key Index)
    主键索引是一种特殊的唯一索引,它确保一行的唯一性,并且每个表都必须有一个主键。主键索引的列不能有NULL值,并且表中的每一行都必须有一个唯一的主键值。
  2. 唯一索引(Unique Index)
    唯一索引确保一行的唯一性,即索引列中的值必须是唯一的,但可以有NULL值。唯一索引可以有多个,并且它们可以跨越多个列。
  3. 组合索引(Composite Index)
    组合索引,也称为复合索引,是由多个列组成的索引。这种索引适用于需要根据多个列的组合来查询数据的情况。在创建组合索引时,列的顺序很重要,因为MySQL可能会选择最左边的列进行搜索。
  4. 文本索引(Full-Text Index)
    文本索引用于Full-Text搜索,它可以对 CHAR、VARCHAR 和 TEXT 类型的列进行索引。文本索引允许进行全文搜索,并且可以用于MySQL的MATCH() against()`语句,以进行复杂的文本比较。
  5. 主键索引(Primary Key Index)
    主键索引(Primary Key Index)是数据库中一种非常重要的索引类型,它的主要作用是保证表中每一行数据的唯一性,并且作为表中所有行的参照标准。

基础索引

基础索引的创建
1.直接创建

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

在这里插入图片描述
2.修改表创建

alter table 表名 add index 索引名(列名);
alter table csb add index name_index (name);

在这里插入图片描述
3.创建表的时候指定

create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,index 索引名 (列名))
create table csc  (id int(9),name char(15),address char(35),sex char(2),index id_index (id));

在这里插入图片描述

唯一索引

唯一索引的创建
***注意唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。 ***


1.直接创建

create unique index 索引名 ON 表名(列名);
create unique index name_index csc(name);

在这里插入图片描述


2修改表格式创建

alter table 表名 add unique 索引名 (表名);
alter table csc add unique name_index (name);

在这里插入图片描述


3创建表时创建

create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,unique 索引名 (列名))
create table csd  (id int(9),name char(15),address char(35),sex char(2),unique name_index (name));

在这里插入图片描述

主键索引

设置主键即可
在这里插入图片描述

alter table 表名 add primary key (字段);

在这里插入图片描述

在这里插入图片描述

组合索引

创建组合索引时,列的顺序很重要。MySQL会按照你在创建索引时列的顺序来优化查询。如果你经常需要按照列的组合来查询数据,确保最经常使用的列排在前面。

创建方式


1.建表时创建

create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,INDEX 索引名 (字段名1,字段名2,字段名3,......));
create table cse  (id int(9),name char(15),address char(35),sex char(2),index id_index (id,name,address,sex));

在这里插入图片描述


2.直接创建

create index 索引名 on 表名(字段名1,字段名2,字段名3,......)
create index all_index on rye (id,name,address,sex);

在这里插入图片描述


3.添加创建

alter tables 表名 add index 索引名(1字段,2字段,3字段,4字段)
alter table loe index all_index(id,name,address,sex);

在这里插入图片描述
在这里插入图片描述

全文索引

全文索引的工作原理是将文本数据分解成小的数据单元(如单词或短语),然后将这些单元与索引表中的条目关联起来。索引表是一个包含指向包含特定文本单元的文档的指针的数据结构。当用户提交搜索查询时,全文搜索引擎会使用索引表快速定位匹配的文档,并按照相关性对结果进行排序。


1直接创建索引

CREATE FULLTEXT INDEX 索引名 ON 表名 (字段);
create fulltext index index_name ON qwe(name);

在这里插入图片描述


2添加创建

alter table 表名 add fulltext  index  索引名 (字段)
 alter table qwe add fulltext index index_address(address);

在这里插入图片描述


3创建表时指定

CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名));
create table alt191  (id int(9),name char(15),address char(35),sex char(2),fulltext index_text (name,address,sex) );

在这里插入图片描述

删除索引

drop index 索引名 on 表名

在这里插入图片描述

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

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

相关文章

Java毕业设计 基于springboot医院挂号系统 医院管理系统

Java毕业设计 基于springboot医院挂号系统 医院管理系统 springboot医院挂号系统 医院管理系统 功能介绍 用户:登录 首页 个人资料 修改密码 门诊管理 用户挂号 医生:登录 首页 个人资料 修改密码 门诊管理: 用户挂号 处方划价 项目划价 项目缴费 项目…

C++多线程并发学完后,该学什么呢?

概述 如何安排知识点的学习次序,有很多做法,下面提供一种思路。 答:C在多线程学完后,可以学网络。 相当于这么一个学习及实际开发中常见演进过程: 单线程、无网络的程序: 一家公司,一个员工…

多级页表查询

说明一下这个三级页表的查询,会需要上面的L2,L1,L0 如果在二级页表level就是2,PGSHIFT是12,那么就是往左移129*2位置,在&9bit就得到L2,其他以此类推 也表查询,首先有跟页表的地址pagetable,…

美团到店-后端开发一面

1. 介绍一下spring的两大核心思想 2. 介绍一下java的代理,以及动态代理和静态代理的区别 3. spring动态代理是如何生成的,jdk动态代理和cglib的区别 4. 介绍一下synchronized关键字、以及synchronized锁和lock的区别 5. 讲一下java中synchronized的锁升级…

测径仪:大小通吃的“直径判官”

嗨,大家好!今天我要给你们介绍一个超级厉害的玩意儿——在线测径仪!它可不是一般的测量工具,它是那个能让直径无处遁形的“直径判官”! 想象一下,有了在线测径仪,你就像是拥有了一双超级敏锐的“…

elasticsearch的数据搜索

DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户…

docker容器下部署hbase并在springboot中通过jdbc连接

我在windows的docker中部署了一个hbase服务,然后用springboot连接到此服务并访问数据。 详情可参考项目中的README.md。项目中提供了用于构建镜像的dockerfile,以及测试代码。 项目连接:https://gitee.com/forgot940629/hbase_phoenix_spring…

【Windows 常用工具系列 15 -- VMWARE ubuntu 安装教程】

文章目录 安装教程镜像下载 工具安装 安装教程 安装教程参考链接:https://blog.csdn.net/Python_0011/article/details/131619864 https://linux.cn/article-15472-1.html 激活码 VMware 激活码连接:https://www.haozhuangji.com/xtjc/180037874.html…

一下想要邮寄很多快递,该怎么邮寄呢?

我们都知道淘宝网上开店的经常会邮寄很多快递,但是这么多快递不可能一下子拿到快递驿站去邮寄吧,但是快递员又不上门取件可怎么办呀,这可真是让人伤透了脑筋了, 我们都知道我们所在的区域一般都会有快递员来承揽我们所在区域的快递…

Jenkins安装 Linux 更换镜像 安装插件

Jenkins安装 Linux 更换镜像 安装插件 前言 下面叙述了三种jenkins安装的方式,jenkins安装之前必须有java环境因为他是java写的… yum安装只能安装最新版本的jenkins,但是jenkins是java写的所以他强依赖java版本,当你的服务器的java版本与jenkins版本冲突时还需要给jenkins重…

烟火AI识别检测算法在新能源汽车充电桩站点的应用方案

新能源汽车作为现代科技与环保理念的完美结合,其普及和应用本应带给人们更加便捷和绿色的出行体验。然而,近年来新能源汽车充电火灾事故的频发,无疑给这一领域投下了巨大的阴影。这不禁让人深思,为何这一先进的交通工具在充电过程…

C语言复杂度(个人笔记)

时间复杂度主要衡量一个算法的运行快慢. 空间复杂度主要衡量一个算法运行所需要的额外空间. 时间复杂度 算法中的基本操作的执行次数,为算法的时间复杂度. 只需要大概执行次数,我们使用大O的渐进表示法。(看谁对数学表达式的影响最大) 空间复杂度 是…

MySQL双机热备份操作

文章目录 概要数据库服务器准备1.MySQL数据库主服务器。2.备份数据库服务器数据准备主服务器dump数据从数据库导入数据配置双机热备份主服务配置从服务配置概要 对于已经在运行的MySQL数据库如何进行双机热备份?本文章详细介绍如何操作进行MySQL双机热备份。 数据库服务器准…

【NC201610】Game

题目 Game 分解质因数,博弈 思路 博弈论一般是两极分化的,要么有思路,相当简单;要么没思路,死活想不出来。 所以一般先找规律,然后大胆猜想,最后提交验证 这道题有什么规律呢? 可以…

python 教你如何创建一个自定义库 colorlib.py

目录 Colorlib 生成代码 模块代码 导入测试 测试一 测试二 应用测试 颜色列表 colorList 随机颜色元组 randcolorTuples 随机颜色字串 randcolorStrings Color类测试 测试一 测试二 题外话 Colorlib 有没有碰到过这样的场景:写代码时想要用上丰富的色…

图像几何变换(仿射变换和透视变换...)及python-opencv实现

文章目录 图像变换类型仿射变换透视变换python-opencv实现参考文献 图像变换类型 图像几何变换主要包括以下几种类型: 平移(Translation):将图像在水平或垂直方向上移动,不改变图像的尺寸和形状。缩放(Sca…

[Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?

与equal()方法的区别?是一个高频考点,资料整理如下: 文章目录 1. ""的介绍2. .equal的介绍 本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料…

Java并发

目录 线程 什么是线程 进程和线程的区别 线程的生命周期 什么是多线程 并发与并行 多线程的三种实现方式 继承Thread类 1.创建类继承Thread类 2.重写run()方法 3.创建对象启动线程 实现Runnable接口 1.自己定义一个类实现Runnable接口 2.重…

程序猿成长之路之番外篇——矩阵算法

今天在复习线性代数知识的过程中,用java语言简单实现了一下矩阵算法。 数学知识回顾 1.什么是矩阵 在数学领域,矩阵就像一个表格,将数据排放进去,形成一个矩形。我们习惯用一个大括号把矩阵内的数据包括进来。 1.矩阵 在数学领域…

FeignClient是否可以配置多个拦截器?

1、做法 在Spring Cloud中,FeignClient是一个声明式的Web服务客户端,让调用远程服务就像调用本地方法一样简单。拦截器可以用于在发送请求之前或者获得响应之后执行一些操作,比如添加公共的Header、记录日志、做一些统计等。 在Feign中&…