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、在数据库工具创建索引时常用的有以下三种

2、使用sql语句创建索引

1、主键索引

2、普通索引

3、唯一索引

4、全文索引

5、前缀索引

6、组合索引

7、空间索引

三、索引存储的数据结构类型:


mysql索引是一种特殊的数据结构

由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列即可。

一、索引为啥会快

索引一般是以文件形式存在磁盘中的,原理是以空间换时间来提高数据的检索效率。

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)

比如如下的sql语句

select name from user where user_id = 5  

未添加索引的时候,想要查到一个数据,需要对记录中的所有信息进行全部的遍历,并将符合条件的数据存入到一个集合内,而加了索引之后,会将加了索引的key值放到B树的数据结构中(B树是一个适合存放于磁盘上进行查询的数据结构,根据key值(比如user_id)在树上进行查询不需要再次把记录进行一个全局查询)从而加快了数据的检索效率。

注:不一定时以B树存储,也可以以其它的数据结构存储,如hashmap

二、索引的类型

1、在数据库工具创建索引时常用的有以下三种

normal:表示普通索引

unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique 很适合对主键加上索引

full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以就是创建普通索引。

2、使用sql语句创建索引

根据索引的逻辑功能可以分为七类

原文链接:MySQL索引的概念以及七种索引类型介绍_刘Java的博客-CSDN博客_mysql索引的概念

1、主键索引


数据列不允许重复,不允许为NULL,一个表只能有一个主键。
ALTER TABLE table_name ADD PRIMARY KEY (column);


2、普通索引


MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和NULL值。一个表允许多个列创建普通索引。

ALTER TABLE table_name ADD INDEX index_name (column);

3、唯一索引


索引列中的值必须是唯一的,但是允许NULL值。建立唯一索引的目的大部分时候都是为了该属性列的数据的唯一性,而不是为了查询效率。一个表允许多个列创建唯一索引。
?

ALTER TABLE table_name ADD UNIQUE (column);


4、全文索引


主要是为了快速检索大文本数据中的关键字的信息。字段长度比较大时,如果创建普通索引,在进行like模糊查询时效率比较低,这时可以创建全文索引,基于倒排索引,类似于搜索引擎。MyISAM存储引擎支持全文索引,InnoDB 存储引擎在 MySQL 5.6.4 版本中也开始支持全文索引。

ALTER TABLE table_name ADD FULLTEXT (column);


5、前缀索引


在文本类型如BLOB、TEXT或者很长的VARCHAR列上创建索引时,可以使用前缀索引,数据量相比普通索引更小,可以指定索引列的长度,但是数值类型不能指定。
?

ALTER TABLE table_name ADD KEY(column_name(prefix_length));


6、组合索引


指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀原则。
主键索引、普通索引、唯一索引等都可以使用多个字段形成组合索引。例如,

ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 );


7、空间索引


MySQL在5.7之后的版本支持了空间索引,而且支持OpenGIS几何数据模型。MySQL在空间索引这方面遵循OpenGIS几何数据模型规则。
?

三、索引存储的数据结构类型:

代表着索引以哪一种数据结构存储常见于支持允许你选择 B-tree 或者 hash 索引的内存存储引擎:

主要区别在于hash 存储以及Btree存储的格式 他们能够优化查询种类的区别,需要根据这两种数据结构的特点去分析;具体介绍请参照

BTREE与HASH的区别 - 简书 (jianshu.com)

简要来说 ,比如%通配符?%xxx%, xxx% 前者使用Btree存储的时候无法命中索引,需要使用hash存储

可以简单理解为,一般查找特定的值用hash结构存储,查找范围内的值、排序用Btree存储

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

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