什么是索引?
与图书的索引类似,数据库索引就是一个指针,指向表里的数据,一般釆用某种高级树结构实现。
索引的作用?
提高检索速度。没有使用索引的查询会导致全表扫描,对每行记录相关的字段执行条件校验。
索引的缺点?
占据磁盘空间,运行时需要额外的维护开销,减缓批处理操作。
如何创建索引?
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
相关推荐
用途:对3.2.0版本的neo4j数据库进行增删改查外加索引的操作 特性: 1.neo4j自带的服务端对中文建立的内置索引分词粒度以字为单位,不太符合实际需求,而且cypher语法没有对分词器的选择操作语句,修改采用elastic做...
涵盖语言资源构建、社会计算、自然语言处理...总之,知识图谱是一个大规模、多领域、多源异构知识集成的载体,是实现智能化信息系统的基础工具和关键基础设施,对于提升信息检索质量、推动智能应用研发具有重要作用。
事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...
修正:新增知识点默认分类的可能出错,以“全部数据库”的方式显示时,缺省数据库以外的分类被选取仍可能出错 版本2.6.1.0更新时间:不详 增加批量修改分类:使用知识点网格的“行选取器”配合Ctrl和Shfit进行多选...
修正:新增知识点默认分类的可能出错,以“全部数据库”的方式显示时,缺省数据库以外的分类被选取仍可能出错 版本2.6.1.0更新时间:不详 增加批量修改分类:使用知识点网格的“行选取器”配合Ctrl和Shfit进行多选...
顺序文件、索引文件、直接文件 D.磁盘文件、磁带文件、光盘文件 6.管理信息系统概念的正确描述之一是( ) A.由计算机、网络等组成的应用系统 B.由计算机、数据库等组成的信息处理系统 C.由计算机、人等组成的社会...
主要包括信息积累、知识挖掘、知识运 用等,结合信息检索、分析及挖掘技术,将信息进行适当的分类及抽取或形成一组问答 序列,并将这些信息进行提取,形成解决某一问题域的数据集,挖掘出一定的专门知识 ,作为决策...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...