`
lixuanbin
  • 浏览: 135990 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

数据库索引基础知识问答

    博客分类:
  • DB
阅读更多
什么是索引?
与图书的索引类似,数据库索引就是一个指针,指向表里的数据,一般釆用某种高级树结构实现。
 
 
 
索引的作用?
 
提高检索速度。没有使用索引的查询会导致全表扫描,对每行记录相关的字段执行条件校验。
 
 
 
索引的缺点?
 
占据磁盘空间,运行时需要额外的维护开销,减缓批处理操作。
 
 
 
如何创建索引?
 
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
分享到:
评论

相关推荐

    基于Neo4j图数据库+JAVA实现的知识图谱和策略构建智能问答引擎+源代码+文档说明

    用途:对3.2.0版本的neo4j数据库进行增删改查外加索引的操作 特性: 1.neo4j自带的服务端对中文建立的内置索引分词粒度以字为单位,不太符合实际需求,而且cypher语法没有对分词器的选择操作语句,修改采用elastic做...

    面向中文自然语言处理的六十余类实践项目及学习索引.zip

    涵盖语言资源构建、社会计算、自然语言处理...总之,知识图谱是一个大规模、多领域、多源异构知识集成的载体,是实现智能化信息系统的基础工具和关键基础设施,对于提升信息检索质量、推动智能应用研发具有重要作用。

    asp.net知识库

    事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...

    针式PinPKM-V201506(免费无使用限制)

    修正:新增知识点默认分类的可能出错,以“全部数据库”的方式显示时,缺省数据库以外的分类被选取仍可能出错 版本2.6.1.0更新时间:不详 增加批量修改分类:使用知识点网格的“行选取器”配合Ctrl和Shfit进行多选...

    PinPKM-V201525(官网发布的最后一个免费无使用限制版本)

    修正:新增知识点默认分类的可能出错,以“全部数据库”的方式显示时,缺省数据库以外的分类被选取仍可能出错 版本2.6.1.0更新时间:不详 增加批量修改分类:使用知识点网格的“行选取器”配合Ctrl和Shfit进行多选...

    管理信息系统 试卷 期末试卷

    顺序文件、索引文件、直接文件 D.磁盘文件、磁带文件、光盘文件 6.管理信息系统概念的正确描述之一是( ) A.由计算机、网络等组成的应用系统 B.由计算机、数据库等组成的信息处理系统 C.由计算机、人等组成的社会...

    大数据时代下的档案数据挖掘.doc

    主要包括信息积累、知识挖掘、知识运 用等,结合信息检索、分析及挖掘技术,将信息进行适当的分类及抽取或形成一组问答 序列,并将这些信息进行提取,形成解决某一问题域的数据集,挖掘出一定的专门知识 ,作为决策...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

Global site tag (gtag.js) - Google Analytics