MySQL进阶篇--索引

1. 概念

索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。

索引类似一本书的目录,比如要查找’student’这个单词,可以先找到s开头的页然后向后查找,这个就类似索引。

2. 索引分类

①按实现方式分类:Hash索引和B+tree索引

Hash索引:

MySQL进阶篇--索引

 

B+tree索引:

MySQL进阶篇--索引

②按功能分类:

MySQL进阶篇--索引

 

单列索引:一个索引只包含单个列,但一个表中可以有多个单列索引;
普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。

普通索引创建

 1 -- 方式1-创建表的时候直接指定
 2 create  table student(
 3     sid int primary key,
 4     card_id varchar(20),
 5     name varchar(20),
 6     gender varchar(20),
 7     age int,
 8     birth date, 
 9     phone_num varchar(20),
10     score double,
11     index index_name(name) -- 给name列创建索引
12 );
13 
14 -- 方式2-直接创建
15 -- create index indexname on tablename(columnname); 
16 create index index_gender on student(gender); 
17 
18 -- 方式3-修改表结构(添加索引)
19 -- alter table tablename add index indexname(columnname)
20 alter table student add index index_age(age);

 

上一篇:[ 数据库 ] MySQL 入门到放弃(二) --- MySQL 常见操作


下一篇:mysql练习题四