浅谈索引的作用以及为何建立索引

2019-05-05  本文已影响0人  Kevin_d0af

一、什么是索引?

在MYSQL官方定义中:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是一种数据结构。
数据库查询是数据库的主要功能之一,最基本的查询算法是顺序查找(linear search)时间复杂度为O(n),显然在数据量很大时效率很低。优化的查找算法如二分查找(binary search)、二叉树查找(binary tree search)等,虽然查找效率提高了。但是各自对检索的数据都有要求:二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织)。所以,在数据之外,数据库还维护着满足特定查找算法的数据结构。这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构就是索引。

二、为什么要建立索引?

一个没有索引的数据库表就相当于一本没有索引的新华字典,当你想找出其中一个汉字的时候,无异于寻找MH370碎片啊。我们为指定的字段创建索引之后,当我们根据条件查找数据的时候,数据库引擎就可以利用查找算法(二分查找法)很高效的查出来。
索引主要分为四种:普通索引、主键、唯一索引、复合索引
1.建立索引的优点:

2.建立索引的缺点:

3.一般需要建立索引的字段

三、索引的数据结构

在Mysql中主要有两种索引结构:B+Tree索引和Hash索引

四、选择索引的数据类型

Mysql支持很多数据类型,选择合适的数据类型存储数据对性能有很大的影响。

上一篇 下一篇

猜你喜欢

热点阅读