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索引的创建与删除

  • 创建索引:
    创建索引主要有几种形式,主要区分是在建表的前后进行创建索引。
    建表的时候创建索引:
CREATE TABLE table_name(
     column1 类型,
     column2 类型,
     ...
     key/index key/index_的名字(column1,column2) -- 括号的字段可以有多个,这时候就是联合索引了
);

建表之后创建,删除索引:

#建表之后创建索引,但是这样创建索引的话,只能创建一个索引
CREATE INDEX/KEY 索引的名字 ON table_name(column1,cloumn2,......,columnN);

或者可以利用ALTER TABLE来实现创建索引

# 创建索引,这时候括号中有多个字段,这时候是联合索引。
ALTER TABLE table_name ADD INDEX/KEY 索引的名字(column1,column2,.....columnN);

# 如果需要添加多个索引的时候,虽然可以写多个ALTER TABLE语句,但是可以只写语句
# 只需要写多个ADD即可。
ALTER TABLE table_name ADD INDEX/KEY 索引名字1(column1,column2,......columnN),
                       ADD INDEX/KEY 索引名字2(column1,column2,......columnN);
  • 删除索引

# 建表之后删除索引,但是这一种方式只能删除一种索引,并不能一次删除多个索引
DROP INDEX/KEY 索引的名字 ON table_name;

# 删除单个索引
ALTER TABLE table_name DROP INDEX/KEY 索引名字;

# 如果需要删除多个索引时,虽然可以写多个ALTER TABLE语句,但是可以只写一个,只是需要
# 写多个DROP INDEX/KEY子句。
ALTER TABLE table_name DROP INDEX/KEY 索引名字1,
                       DROP INDEX/KEY 索引名字2,
                       DROP INDEX/KEY 索引名字n;

利用SHOW INDEX FROM table_name,就可以获取这个表中的索引信息了:
在这里插入图片描述
其中获取的结果的各个字段表示的含义如下:

  1. Table:索引所在的表名
  2. Non-unique:非唯一的索引。可以看到PRIMARY KEY是0,因为主键必须是唯一的
  3. Key-name:表示索引的名字,我们通过这个名字来删除索引
  4. Seq_in_index:表示当前这个字段在索引的位置。例如index_id_name(id,name),其中的id将会是1,name的Seq_in_index的值为2.
  5. Column_name:索引的字段名。例如index_id_name(id,name)中的id,name分别可以作为它的值.
  6. Collation:列以什么方式存储在索引中。可以是A或者NULL。B+树索引总是A,即排序的。如果使用了Heap存储引擎,并且建立Hash索引,这里就会显示NULL了。因为Hash根据Hash桶来存放索引数据,而不是对数据进行排序。
  7. Cardinality:非常关键的值,表示索引中唯一值的数目的估计值。Cardinality表的行数应尽可能接近1,如果非常小,那么需要考虑是否还需要建这个索引。
  8. Sub_part:表示这个字段是一部分被索引,还是全部被索引,如果值为NULL,表示索引整个列,否则如果是一个数字n,表示所以这个列的前n部分
  9. Packed:关键字如何被压缩。如果没有被压缩,则为NULL。
  10. 10.NULL:索引的列中是否含有NULL值
  11. Index_type:表示索引的类型。因为InnerDB存储引擎只支持B+树索引,所以显示BTREE
  12. Comment:注释。

利用索引进行查询数据:

SELECT column1,column2,columnN FROM table_name
FORCE INDEX(索引名)
WHERE xxx
GROUP BY XXX -- 然而使用GROUP BY的时候,必须需要保证前面检索的column1,column2,columnN和GROUP BY后面的字段名相同,否则就会发生报错
HAVING YYY
ORDER BY ZZZ
LIMIT M OFFSET N;

对应练习:
对first_name创建唯一索引uniq_idx_firstname
针对上面的salaries表emp_no字段创建索引idx_emp_no

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:31:26  更:2021-10-12 23:32:29 
 
开发: 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/24 1:27:00-

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