如果遇到没有创建的表影响运行使用
->点我进入表的创建与数据插入
或者评价反馈
索引
索引是数据库对象之一。是为了提高查询效率。
索引的统计与应用是数据库自动完成的,只要数据库认为可以使用某个已创建的索引时,就会自动应用
创建索引
创建索引的语法:
CREATE [UNIQUE] INDEX index_name
ON table(column[, column…]);
其中:
index_name表示索引名称
table表示表名
column表示列名,可以建立单列索引或复合索引
UNIQUE表示唯一索引
在emp表的ENAME列上建立索引
CREATE INDEX idx_emp_swm_ename ON emp_swm(ename);
复合索引
也叫多列索引,是基于多个列的索引
创建复合索引
CREATE INDEX idx_emp_swm_job_sal ON emp_swm(job,sal);
查询的时候,会自动应用索引idx_emp_swm_job_sal
SELECT empno,ename,sal,job
FROM emp_swm
ORDER BY job,sal
创建基于函数的索引
CREATE INDEX idx_emp_swm_ename_upper
ON emp_swm(UPPER(ename))
SELECT * FROM emp_swm
WHERE UPPER(ename)='KING'
修改和删除索引
修改索引
如果经常在索引列上执行DML操作,需要定期重建索引,提高索引的空间利用率
语法:ALTER INDEX idx_name REBUILD;
重建索引idx_emp_swm_ename
ALTER INDEX idx_emp_swm_ename REBUILD
删除索引
当一个表有不合理的索引,会导致操作性能下降。
删除索引的语法:DROP INDEX index_name;
删除索引idx_emp_swm_ename
DROP INDEX idx_emp_swm_ename
合理使用索引提升查询效率
- 为提升查询效率,创建和使用索引的原则:
- 为经常出现在WHERE子句中的列创建索引
- 为经常出现在ORDER BY、DISTINCT后面的字段建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致
- 为经常作为表的连接条件的列上创建索引
- 不要在经常做DML操作的表上建立索引
- 不要在小表上建立索引
- 限制表上的索引数目,索引并不是越多越好
- 删除很少被使用的、不合理的索引