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

合理使用索引提升查询效率

  • 为提升查询效率,创建和使用索引的原则:
  • 为经常出现在WHERE子句中的列创建索引
  • 为经常出现在ORDER BY、DISTINCT后面的字段建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致
  • 为经常作为表的连接条件的列上创建索引
  • 不要在经常做DML操作的表上建立索引
  • 不要在小表上建立索引
  • 限制表上的索引数目,索引并不是越多越好
  • 删除很少被使用的、不合理的索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值