什么是索引?
与图书的索引类似,数据库索引就是一个指针,指向表里的数据,一般釆用某种高级树结构实现。
索引的作用?
提高检索速度。没有使用索引的查询会导致全表扫描,对每行记录相关的字段执行条件校验。
索引的缺点?
占据磁盘空间,运行时需要额外的维护开销,减缓批处理操作。
如何创建索引?
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
相关推荐
内容概要:本文是一份数据库相关技术点的问答资料,涵盖了如数据库ACID特性定义、数据库索引概念及其优劣分析、SQL的各种JOIN操作解析以及数据库性能优化策略等内容。通过对这些问题的回答,帮助读者全面掌握数据库...
总的来说,数据库系统原理涵盖的内容广泛,包括数据独立性、查询操作、安全性、完整性规则、设计过程、索引优化和并发控制等多个方面,这些都是构建高效、安全、可靠数据库系统的基础。理解和掌握这些知识点对于...
本文将深入解析“关于数据库设计的几个问答”这一主题,基于给定的文件信息,提炼并阐述其中涉及的重要知识点,涵盖数据库设计的基本步骤、概念模型到逻辑模型的转换、以及数据库性能优化等方面。 ### 数据库设计的...
首先,关于数据库的基础知识,我们需要了解数据库的定义和分类。数据库是一个系统化的数据集合,用于存储、管理和检索信息。根据管理模式,数据库可以分为层次型、网络型、关系型(如SQL)、对象关系型和NoSQL(非...
使用场景及目标:帮助读者全面复习数据库基础知识,提升面对面试中可能出现的技术问答环节的能力,增强应聘成功的几率。 其他说明:文档中的问题和解释都非常详细,不仅适合面试前复习使用,也是日常工作中遇到类似...
这个资料包涵盖了SQL语言的基础知识以及数据库管理的基本概念,同时提供了西农以往数据库试题,对于理解数据库原理、提升SQL操作技能以及熟悉考试格式具有极大的帮助。 SQL,全称为Structured Query Language,是...
用途:对3.2.0版本的neo4j数据库进行增删改查外加索引的操作 特性: 1.neo4j自带的服务端对中文建立的内置索引分词粒度以字为单位,不太符合实际需求,而且cypher语法没有对分词器的选择操作语句,修改采用elastic做...
考生需要具备一定的数据库管理系统(DBMS)实际操作经验,理解索引原理、查询优化、存储过程、触发器的使用,以及数据库安全性的实现,如用户权限管理、数据加密等。 此外,2017年的软考数据库工程师真题还可能涵盖...
若是数据库慢导致,需要检查数据库的查询语句是否优化,索引是否合理,服务器配置是否足够等。 调整生产线中MySQL数据库的字符集: 可通过ALTER DATABASE或ALTER TABLE命令调整字符集,例如:ALTER DATABASE `...
理解DBMS的工作原理,包括事务处理、并发控制、恢复机制和安全性,这些都是数据库理论的重要部分,可能在考试中以问答形式出现。 第五,关系代数和关系演算是数据库理论的理论基础,它们用于描述数据库操作。例如,...
5. **知识库构建**:本地知识库是问答系统的基础,它可能由结构化数据(如数据库)或非结构化文本(如网页、文档)组成。知识库的构建包括数据的收集、整理、去重和索引,以便模型能够高效地搜索和利用信息。 6. **...
5. **chapter3.pdf**:第三章很可能是关于SQL语言的基础知识,包括DML(数据操作语言)如SELECT、INSERT、UPDATE、DELETE,以及DDL(数据定义语言)如CREATE、ALTER、DROP等语句的使用。 6. **chapter15.pdf****和*...
"数据库概论教程及课后习题解答"是一份专门为初学者设计的资源,旨在帮助他们快速掌握数据库系统的基础知识。 教程可能涵盖以下几个关键知识点: 1. **数据库定义与类型**:首先会介绍什么是数据库,它如何不同于...
这个资源对于初学者来说是一个宝贵的教程,它涵盖了Oracle数据库的基础知识、SQL查询、PL/SQL编程、数据库管理、性能优化等多个方面。 1. **Oracle基础知识** - Oracle数据库的架构:理解Oracle的实例、数据库、表...
数据结构包括数组、链表、树、图等,特别是B树和B+树,它们在数据库索引中的应用尤为重要。了解这些数据结构的特性,能帮助考生理解如何优化查询性能,比如如何利用索引来快速定位数据。 "05年上半年数据库系统工程...
本文将深入探讨数据库的基础知识,特别是针对SQL Server数据库的入门指南,适用于数据库相关的考试,包括考研复试的面试问答,特别关注电子科大的学生。 一、数据库基本概念 1. 数据库(Database):是一个有组织地...
1. **主题分类**:索引文件会根据不同的主题进行分类,如基础语法、类库使用、内存管理、多线程编程、图形用户界面设计、数据库连接等,便于用户按需查找。 2. **文章列表**:每一期杂志的每篇文章都会在索引中列出...
数据库系统工程师考试通常包括选择题、填空题、问答题等,涉及的知识点广泛,涵盖了数据库理论、SQL语言、数据库设计、数据库管理、性能调优等多个方面。 在数据库理论部分,考生需要掌握关系数据库模型的基本概念...