什么是索引?
索引就是在表或者视图的基础上创建出来的一种树状结构,通过该结构可以快速的访问表中数据。索引要额外占用存储空间来保存。
索引的作用其实和书的目录相同,如果你想找查某一篇文章的一段话,那么你先通过目录来找到这篇文章,在从这篇文章中找到这段话。
创建索引的语句:
create [unique] index 索引名
on 表名(列名[asc | desc],列名[asc | desc]...);
[]表示可有可无
unique:表示创建的是唯一索引,要求创建的字段值或者表达式必须唯一
bitmap:表示创建的是位图索引
如果没有修饰符表示则默认创建的是可以重复的b树索引
asc表示创建索引按升序排序
desc表示创建的索引按降序排序
表student:
SQL> desc student;
名称 是否为空? 类型
----------------- -------- ------------
SNO NOT NULL NUMBER(9)
SNAME NOT NULL CHAR(20)
SSEX CHAR(4)
SAGE NUMBER(2)
SDEPT CHAR(20)
例子:
SQL> create index studentview
2 on student(sdept);
索引已创建。
当一个列已经包含了索引那么无法在该列上在创建索引
索引的优点
能够加快表与表的链接
加快查找速度
索引的缺点
占用空间
需要维护
应用场景:
在经常需要排序的列上创建索引
对于数据庞大且where语句使用频繁的数据中使用
索引会降低DML操作,在经常修改的数据尽量不要使用索引