索引:提高海量数据的检索速度。
索引的分类:
- 主键索引(primary key)
- 唯一索引(unique)
- 普通索引(index)
- 全文索引(fulltest)
1. 基本原理
新建一个表:
字段 | 数据类型 |
---|---|
id | int |
name | varchar(20) |
假设表中有 10000 个记录,id 从 1-10000。
- 若没有建立索引,需要从头到尾遍历记录直到找到你所要查找的数据,若你要查找的 name 的 id 为10000,那么按照 id 查找你就需要查找 10000 次。时间复杂度为 O(N)。
- 如果对这个“ID”建立了索引,即从小到大进行了排序之后我们就可以采用二叉树的形式进行查找。那么我们只需要log210000次。时间复杂度为 log2N。
无索引是线性查找,有索引的查找是二叉树查找
2. 主键索引
特点:
- 一个表中,最多有一个主键索引
- 主键索引效率高
- 创建主键索引的嘞,它的值不能为空 (null),且不能重复
- 主键索引的列基本上是 int 类型
- 主键索引可以做外键
创建:
- 在创建表的时候,直接在字段名后指定主键索引,primary key
CREATE TABLE user1(id INT PRIMARY KEY, na