一、SQL语法——5-索引
5-索引
1.索引是存放在schema中的一个数据库对象,虽然索引依附于数据表,但它也是和数据表一样的数据库对象。创建索引的唯一作用就是加速对表的查询,索引通过使用快速路径访问方法来快速定位数据,减少磁盘I/O。
注:虽然索引也是数据库对象,但索引不可以独立存在必须依附于数据表。
2.创建索引的两种方式:
自动:当在数据表上定义primary key、unique、foreign key时,系统会为该数据列自动创建对应的索引;
手动:通过如下格式手动创建索引:create index index_name on table_name (column,column...);
3.删除索引的两种方式:
自动:数据表被删除时,依附于此数据表的索引会被系统自动删除;
手动:通过如下格式手动删除索引:drop index index_name on table_name;
4.示例:
#下面的索引将提高对employees表基于last_name字段的查询速度 create index emp_last_name_idx on employees(last_name); #同时对多列建立索引 create index emp_last_name_idx2 on employees(first_name,last_name); #MySQL中删除索引需要指定表明,因为MySQL只要求同一个表内的索引不能同名 #对于Orecl而言,索引名称唯一,所以不需要指定表名 drop index emp_last_name_idx2 on employees;
5.索引可以加快查询速度,但是索引也有两个坏处:
(1)当数据表中的记录被添加、删除、修改时,数据库系统需要维护索引,因此有一定的系统开销;
(2)存储索引信息需要一定磁盘空间。