SQL的索引介绍

索引
索引是数据库对象之一。是为了提高查询效率。
索引的统计与应用是数据库自动完成的,只要数据库认为可以使用某个已创建的索引时,就会自动应用
创建索引
创建索引的语法:
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
1
合理使用索引提升查询效率
为提升查询效率,创建和使用索引的原则:
为经常出现在WHERE子句中的列创建索引
为经常出现在ORDER BY、DISTINCT后面的字段建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致
为经常作为表的连接条件的列上创建索引
不要在经常做DML操作的表上建立索引
不要在小表上建立索引
限制表上的索引数目,索引并不是越多越好
删除很少被使用的、不合理的索引

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值