一、索引的简介
索引类似于目录,其存在是为了提高从表中检索数据的速度。索引是由表中一个字段或者多个字段生成的键所组成,存储于数据结构中,可通过MySQL快速有效的查找与键值有关联的字段。
索引的优点有二,除提高查找速度外还可以保证字段的唯一性,从而实现数据表库的完整性。
MySQL索引有六种:普通索引、唯一索引、全文索引、单列索引、多列索引、空间缩影。
二、推荐使用索引的情况
1、经常被查询的字段,即在WHERE子句中出现的字段。
2、在分组的字段,即GROUP BY 子句中出现的字段。
3、存在依赖关系的子表和父表之间的联合查询,即主键或外键字段。
4、设置唯一完整性约束的字段。
三、创建和查看索引
MySQL中,可以通过三种方式来创建索引,分别为创建表时创建索引、在已经存在的表上创建索引和通过SQL语句 ALTER TABLE创建索引。
1、创建和查看普通索引
普通索引----------》创建索引时,不附加任何限制条件
(1)、创建表时创建普通索引
CREATE TABLE table_name(
属性名 数据类型,
INDEX|KEY 【索引名】(属性名=【(长度 )】【ASC|DESC】)
)
** 此处需要注意key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)
index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。它不约束索引字段的行为。
例:CREATE TABLE t_name(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
INDEX index_deptno(deptno)
) ;
2、在已经存在的表上创建普通索引