索引的分类

news2024/10/7 0:22:19

1.唯一索引

给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还不能出现Null,每张表可以有多个唯一索引,但是只能有一个主键索引)

2.单值索引

一个索引只包含单个列,与联合索引(复合索引)相对

一张表中可以有多个单值索引

创建单值索引:create  index  索引名 on  表名(字段名)

或者alter table表名 add index索引名(字段)

删除单值索引:drop  index  索引名  on  表名

3.复合索引

一个索引包含多个列

4.全文索引  是模糊匹配的一种更好的解决方案(也就是说它的效率比like%更高),只有数据类型为char,varchar,text的列才能被设置成全文索引

新建一张表,表中有三个字段:id(int类型),title(varchar类型),body(text类型)  

然后设置body这一列为全文索引:fulltext (body)

 现在搜索哪一列的body部分包含"database"

执行sql语句: 

select * from articles 
where  match(body)  against('database')

比执行下面的sql语句要快很多:

select * from  articles
where  boby  like  '%database%';

添加索引有两种情况:

(1)建表的时候就添加索引

(2)表已经建完了再添加索引

1.建表时添加索引   这种方式添加索引比较简单,      索引类型  索引名(列名1.列名2,列名3.....)

普通索引是key   索引名(列名1.列名2,列名3.....)

唯一索引是unique    索引名(列名1.列名2,列名3.....)

主键索引是primary key(列名1.列名2,列名3.....)   唯一索引不需要设置索引名

2.表已经建完了再添加索引

创建普通索引:alter  table 表名   add    index  (列名1.列名2,列名3.....)

创建唯一索引:alter table 表名 add unique   索引名(列名1.列名2,列名3.....)

创建主键索引:alter  table 表名   add  primary   key  (列名)

举例如下:

创建了一张表,表里面有三列,a,b,c三列

表中创建了四个索引:a这列是主键索引,b这列是唯一索引,c这列是单值索引,c,d两列组成了联合索引

create  table   test
(
    a  int(10)   auto_increment;
    b  varchar(20);
    c  varchar(20);

    primary key(a);
    unique  index_test1(b);
    key  index_test2(c);
    key  index_test3(c,d);
)

如果是再可视化客户端中添加索引就更简单了

 比如下面这张表中有6个字段,我们希望创建一个用户id+商品的组合索引

鼠标悬停在表名上,右键更改表(有的数据库系统显示的是设计表)

 选中索引,然后添加索引

 第一个字段是索引的名字,第二个字段是选中原表的哪几个字段组合起来成为索引,第三个字段表示这个索引是唯一索引,第四个字段是表示索引用b树来存储

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

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

相关文章

Android opencv

install cmake cpp folder,新建c项目 获取 OpenCV4Android SDK O4A_SDK 下载,并解压 ~/Downloads/OpenCV-android-sdk$ tree -d -L 2 . ├── apk ├── samples │ ├── 15-puzzle │ ├── camera-calibration │ ├── color-blob-detection │ ├…

文件:IO流

1. 什么是IO /O 即输入Input/ 输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程;java中用“流(stream)”来抽象表示这么一个写入写出的功能,封装成一…

Vue学习笔记(7. axios异步请求)

1. axios请求方式 方式1:axios({method:"GET",url:"..."}) 方式2:axios({method:"POST",url:"...",data:"..."}) 方式3:axios.get("url...") 方式4:axios.post(…

Python中的35个关键字

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

【 Spring MVC 核心功能(二) - 获取参数(下)】

文章目录一、使用 RequestBody 接收JSON对象二、使用 RequestPart 上传⽂件三、获取 Cookie四、获取 Header五、存储和获取 Session5.1 存储 Session5.2 获取 Session一、使用 RequestBody 接收JSON对象 有时客户端会通过 post 方式发送 json 格式的请求,那后端就可…

2.3.5双链表

单链表vs双链表 就是既有前驱指针也有后继指针,由line改为double。 双链表的插入怎么实现? s->nextp->next; p->next->priors s->priorp //把p赋给s的前驱指针指向的位置 p->nexts; 如果p刚好是最后一个元素。 p->next->prio…

基于ArcGIS的电子地图矢量化方法

一、电子地图及纸质地图矢量化的目的 地图数据来源有很多,其中栅格数据数字化是地图数据的重要来源。栅格数据的矢量化包括地理配准以及矢量化。矢量化后的地图数据往往可以为我们的空间统计分析提供实验依据,从而探究地理分布的时空差异性。 空间参考&a…

完整指南:如何安装Man手册

Man手册简介 man手册是Unix和类Unix操作系统中的命令行工具,用于提供关于特定命令、函数和文件的帮助文档。它通常包含命令的语法、选项、参数、示例以及其他相关信息。man手册可以通过在终端输入"man"命令,后跟要查看的命令或函数名称来访问…

huggingface transformer模型介绍

总结: 模型提高性能:新的目标函数,mask策略等一系列tricks Transformer 模型系列 自从2017,原始Transformer模型激励了大量新的模型,不止NLP任务,还包括预测蛋白质结构,时间序列预测。 有些模…

灌区流量监测设备-中小灌区节水改造

系统概述 灌区信息化管理系统主要对对灌区的水情、雨情、土壤墒情、气象等信息进行监测,对重点区域进行视频监控,同时对泵站、闸门进行远程控制,实现了信息的测量、统计、分析、控制、调度等功能。为灌区管理部门科学决策提供了依据&#xf…

Python 无监督学习实用指南:6~10

原文:Hands-on unsupervised learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关…

23年5月高项学习笔记12 —— 干系人管理

过程: 1. 识别干系人:定期识别干系人,分析和记录他们的利益,参与度、相互依赖性、影响力和对项目的潜在的影响 输入:立项管理文件、沟通管理计划、干系人参与计划、需求文件、变更日志、问题日志、协议(协…

今天给大家介绍一篇基于springboot的医院管理系统的设计与实现

临近学期结束,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基…

2023/4/10总结

线段树 线段树是一种二叉树,通俗易懂的来说就是对于一个线段,我们会用一个二叉树来表示。线段树是一种工具,她能把对区间(线段)的修改与维护从0(N)的时间复杂度变成0(logN)。 如图: 如上图,我…

MYSQL SQL语句优化技术技巧

MySQL是一种流行的关系型数据库管理系统,它提供了各种各样的SQL语句优化技术,下面是一些常见的优化技巧: 1. 使用索引 索引可以大大提高查询性能。在MySQL中,可以使用CREATE INDEX语句在列上创建索引。当查询包含WHERE子句并且…

Google SEO 搜索中心

在公司发展还没有那么成熟的时候,也许你的测试网站是外网可以公开访问的,也许你网站中的机密图片在测试环境(不小心上到正式环境)却被搜索引擎无情抓取,以及有些内部用户才能使用的网址,你并不想被搜索引擎…

明着呼吁暂停,暗着囤积GPU,马斯克暗度陈仓玩得溜

众所周知,此前马斯克纠集了上千名科技工作者对生成式人工智能的深度训练表示了质疑,呼吁暂停继续对深度人工智能的训练,哪怕先暂停六个月。呼吁的尘埃还没有彻底落地,就传出了马斯克已经悄悄地囤积了上万枚GPU,构建自己…

《花雕学AI》15:BingGPT桌面端——尝鲜体验ChatGPT4.0同源技术新Bing的最新成果

引言: 本文将介绍 BingGPT桌面端的开发背景和目的,以及它与新 Bing 的关系和区别。本文还将说明BingGPT桌面端的主要功能和特点,以及如何下载、安装和使用。最后,本文将评价 BingGPT桌面端对于新 Bing 的人工智能聊天功能的推广和…

dolphinscheduler资源中心

资源中心 资源中心介绍 资源中心提供文件管理,UDF管理,任务组管理。 文件管理可以访问要执行的hive的sql文件 UDF管理可以放置fllink执行的自定义udf函数jar包,hive自定义的UDF函数jar包 以上的*.sql,*.jar文件可以理解为资源&#xff0c…

三本小书的前言

所有的事情既是好事也是坏事,人工智能也不例外;所有的事情既是坏事也是好事,人类智慧也不例外。《追问人工智能:从剑桥到北京》前 言一个地方不在大小,关键看有无灵气,剑桥就是这样一个神奇的地方&#xff…