DBMNG数据库管理与应用

科学是实事求是的学问,来不得半点虚假。

数据库索引基础知识问答

什么是索引?
与图书的索引类似,数据库索引就是一个指针,指向表里的数据,一般釆用某种高级树结构实现。
 
 
 
索引的作用?
 
提高检索速度。没有使用索引的查询会导致全表扫描,对每行记录相关的字段执行条件校验。
 
 
 
索引的缺点?
 
占据磁盘空间,运行时需要额外的维护开销,减缓批处理操作。
 
 
 
如何创建索引?
 
create (unique) index index_name on table_name(column1, ...)
 
 
 
如何删除索引?
 
drop index index_name on table_name
 
 
 
索引有哪些种类?
 
单字段索引:基于一个字段创建的索引。
 
组合索引:基于两个或多个字段创建的索引,最有限制性或者总是会指定的字段放在前面。
 
唯一索引:不允许重复值。
 
隐含索引:自动创建的索引,比如主键约束和唯一性约束;
 
聚集索引:表中行的物理顺序与键值的逻辑(索引)顺序相同,一张表只能有一个聚集索引;
 
非聚集索引:表中行的物理顺序与索引顺序无关。
 
 
 
何时应该使用索引?
 
主键约束和唯一性约束会自动创建索引;
 
外键;
 
联表查询经常用到的字段;
 
经常在order by和group by引用的字段;
 
具有大量唯一值的字段;
 
在where子句会返回很少记录的字段。
 
 
 
何时不该使用索引?
 
小规模的表;
 
在where子句会返回大部分记录的字段;
 
经常被操作的字段;
 
包含大量null值的字段;
 
经常会被批量更新的表可以在执行批量操作之前删除索引,完成操作后再重建索引。
 
 
 
小结:
 
需要对表的关系、査询和事务需求,以及对数据本身有透彻的了解才能有效地使用索引。
 
编译、整理自:
【SQL入门经典(第5版)】
http://www.cnblogs.com/flashicp/archive/2007/05/08/739245.html1
http://foocoder.com/blog/tan-shu-ju-ku-suo-yin-he-sqlitezhong-suo-yin-de-shi-yong.html/
http://tech.meituan.com/mysql-index.html
本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号