IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql索引学习总结 -> 正文阅读

[大数据]mysql索引学习总结

索引

索引主要是针对表中的列,增加索引的目的是加快查询速度,索引可以对单列或多列进行添加

1 普通索引

1.1 在创建表时添加索引

普通索引,在创建该类索引时,不给索引添加任何限制条件(唯一、非空等),可以在任意列上创建

格式:

create table tableName(
propname1 type1, propname2 type2,
INDEX|KEY indexName (propname1(length) ASC|DESC));

其中 INDEX|KEY 表示可以选择其中一个,索引一般使用index,indexName可以省略不写,length也可以省略不写;

ASC|DESC 表示可以选择一个,ASC表示对索引字段查询时会升序显示,DESC表示对索引字段查询时会降序显示,ASC|DESC也可以省略不写

【例】一张学生表,有id,姓名,班级,老师栏位,对姓名栏位增加索引

create table student(id int, name varchar(4),
class_name varchar(5), teacher varchar(4),
INDEX index_name(name);

1.2 在已有的表上添加索引

格式:

ALTER table tableName ADD INDEX|KEY indexName(porpname(length) ASC|DESC);

其中 INDEX|KEY 表示可以选择其中一个,索引一般使用index,indexName可以省略不写,length也可以省略不写;

ASC|DESC 表示可以选择一个,ASC表示对索引字段查询时会升序显示,DESC表示对索引字段查询时会降序显示,ASC|DESC也可以省略不写

2 唯一索引

对某一列进行设置唯一索引,该列需要为 UNIQUE 唯一属性

2.1 在创建表时添加索引

格式:

create table tableName(
propname1 type1, propname2 type2,
UNIQUE INDEX|KEY indexName (propname1(length) ASC|DESC));

与普通索引相比,只需要在INDEX前加上UNIQUE

2.2 在已有的表上添加索引

方式一格式:

ALTER table tableName ADD 
UNIQUE INDEX|KEY indexName(porpname(length) ASC|DESC);

方式二格式:

create UNIQUE INDEX|KEY indexName on tableName(
propname(length) ASC|DESC);

3 全文索引

全文索引主要是对字符类型(varchar/char/text)的字段进行建立基于分词的索引,查询条件中可以对添加索引的字段类似于模糊查询

3.1 在创建表时添加索引

创建格式:

create table tableName(
propname1 type1, propname2 type2,
FULLTEXT INDEX|KEY indexName (propname1(length));

与普通索引相比,只需要在INDEX前加上FULLTEXT

3.2 在已有的表上添加索引

创建格式:
方式1:

ALTER table tableName ADD 
FULLTEXT INDEX|KEY indexName(porpname(length));

方式二格式:

create FULLTEXT INDEX|KEY indexName on tableName(
propname(length));

3.3 使用索引

格式:

select * from tableName where MATCH(propname)AGAINST('关键字');

4 多列索引

多列索引就是对多列进行添加索引,只有当查询条件中使用了第一个索引字段时,多列索引才会被触发

4.1 在创建表时添加索引

创建格式:

create table tableName(
propname1 type1, propname2 type2,propname3, type3,
INDEX|KEY indexName (
propname1(length)ASC|DESC, 
propname2(length)ASC|DESC, 
propname3(length)ASC|DESC);

查询时,使用:select * from tableName where propname>0;
其中使用了第一个索引字段作为查询条件,多列索引会被触发

4.2 在已有的表上添加索引

创建格式:
方式1:

ALTER table tableName ADD 
INDEX|KEY indexName(
propname1(length)ASC|DESC, 
propname2(length)ASC|DESC, 
propname3(length)ASC|DESC);

方式二格式:

create INDEX|KEY indexName on tableName(
propname1(length)ASC|DESC, 
propname2(length)ASC|DESC, 
propname3(length)ASC|DESC);

5 查看索引执行情况

使用explain 查询语句
其中查询语句的条件中包含索引字段,会显示索引的执行情况
索引执行
其中,
key:为使用的索引,若显示为null则表示没有索引
possible_keys:显示应用在表中的索引
key_len:为索引中使用的字节数

6 隐藏索引

可以对索引进行隐藏,从而不会触发索引,可以用来测试索引
格式:

ALTER table tableName INDEX indexName INVISIBLE; //隐藏索引
ALTER table tableName INDEX indexName VISIBLE; //取消隐藏

7 删除索引

索引有可能会降低表的更新速度,可以对索引进行删除
格式:

DROP INDEX indexName ON tableName;

如果需要对索引进行更新,可以先进行删除,再进行创建

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:14:07  更:2021-09-12 13:16:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 11:28:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码