`
- 浏览:
145241 次
- 性别:
- 来自:
北京
-
使用索引的意义
• 索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。
• 使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。
使用索引的代价
索引需要占用数据表以外的物理存储空间。
• 创建索引和维护索引要花费一定的时间。
• 当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。
• 创建索引的列
主键
• 外键或在表联接操作中经常用到的列
• 在经常查询的字段上最好建立索引
不创建索引的列
• 很少在查询中被引用
• 包含较少的惟一值
• 定义为 text、ntext 或者 image 数据类型的列
何时创建聚集索引?
Clustered Index会提高大多数table的性能,尤其是当它满足以下条件时:
1. 独特, 狭窄, 静止: 最重要的条件
2. 持续增长的,最好是只向上增加。例如:
• Identity
• Date, identity
• GUID (only when using newsequentialid() function)
以下情况不要建索引:
• 1、如果每次都需要取到所有表记录,无论如何都必须进行全表扫描了,那么是否加索引也没有意义了。
• 2、对非唯一的字段,例如“性别”这种大量重复值的字段,增加索引也没有什么意义。
• 3、对于记录比较少的表,增加索引不会带来速度的优化反而浪费了存储空间,因为索引是需要存储空间的,而且有个致命缺点是对于update/insert/delete的每次执行,字段的索引都必须重新计算更新
以下情况要建立索引
SELECT c.companyID, c.companyName FROM Companies c, User u WHERE c.companyID = u.fk_companyID AND c.numEmployees >= 0 AND c.companyName LIKE '%i%' AND u.groupID IN (SELECT g.groupID FROM Groups g WHERE g.groupLabel = 'Executive')
这条语句涉及3个表的联接,并且包括了许多搜索条件比如大小比较,Like匹配等。在没有索引的情况下Mysql需要执行的扫描行数是77721876行。而我们通过在companyID和groupLabel两个字段上加上索引之后,扫描的行数只需要134行。在Mysql中可以通过Explain Select来查看扫描次数。可以看出来在这种联表和复杂搜索条件的情况下,索引带来的性能提升远比它所占据的磁盘空间要重要得多。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
数据库索引设计与优化是数据库管理系统中至关重要的一个环节,它直接影响到数据查询...通过学习《数据库索引设计与优化》这样的专业书籍,我们可以深入理解这些原理,并将其应用于实际工作,提升数据库系统的整体效能。
《Oracle与MySQL数据库索引设计与优化》这本书深入探讨了两个主流关系型数据库管理系统——Oracle和MySQL中的索引设计和优化策略。索引是数据库性能的关键因素,它们能够加速数据检索,提高系统效率,尤其在大数据量...
数据库中索引原理 数据库中索引原理 数据库中索引原理 数据库中索引原理
535303 数据库索引设计与优化 本人是一个IT开发爱好者,从事Android的开发工作。热爱学习新技术。 * 若您也有共同的兴趣爱好,欢迎你加入QQ技术群让我们共同发现新技术。 【GitHub】https://github.com/xiaole0310 ...
《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。 作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理, 以及表和索引的扫描方式,详尽地讲解了如何快速地...
本文档作为一份详尽的数据库索引PPT学习教案,将系统地阐释数据库索引的基础知识、数据类型选择、不同索引类型的特点及其分类,以及B-Tree和哈希索引的查询类型和局限。 首先,理解索引的基础知识至关重要。索引是...
数据库是存储和管理数据的核心工具,它通过高效的数据组织方式来提供...通过深入学习《非聚集索引.docx》、《聚集索引.docx》和《索引模式.docx》等文档,可以更全面地了解这些概念并应用于实际的数据库管理工作中。
浅析实时数据库的应用。并在其中介绍实时数据库的索引技术的应用和实现方法。和供学习实时数据库的研究使用。
数据库索引是数据库管理系统中的重要组成部分,它在数据检索中起着至关重要的作用。...通过学习这份“电子功用-数据库索引的建立方法及其电脑系统”的资料,你将能更深入地理解这个主题,并在实际工作中运用这些知识。
### 数据库索引与优化技术 #### 数据库索引概述 数据库索引是提高查询性能的关键技术之一。它通过创建额外的数据结构来加速数据检索过程。索引的主要目的是减少磁盘I/O操作次数,从而加快查询速度。在现代数据库...
数据库索引原理是数据库系统中的关键技术之一,它对数据检索速度和系统性能有着重大影响。在个人开发过程中,深入理解并应用这些原理至关重要。本文将围绕数据库中的索引概念、聚族索引、主键以及查询优化进行详述。...
MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!
VF数据库索引及记录操作PPT教案学习.pptx
4. **索引**:索引是提高查询速度的关键,学习如何创建、管理和优化索引,理解B树索引、位图索引、函数索引等不同类型及其应用场景。 5. **备份与恢复**:Oracle提供了多种备份策略,如RMAN(Recovery Manager)、...
【数据库检索学习】两大索引数据库——EI与SCI 数据库检索是科研工作中的重要环节,其中,EI(Engineering Index)和SCI(Science Citation Index)是全球范围内广泛使用的两大索引数据库,它们为科研人员提供了...
本文将深入探讨“数据库学习全程笔记及学习样例”中的关键知识点,帮助你从入门到精通,掌握SQL语言和MSSQL Server数据库的使用。 首先,我们从基础开始。数据库创建是学习的起点,这包括安装MSSQL Server,配置...
【MySQL数据库索引实现原理——B+树解析】 在数据库领域,MySQL作为主流的数据库管理系统,其高效的数据存取机制离不开索引的支撑。索引是数据库系统优化查询速度的关键,它通过特定的数据结构实现快速查找、插入和...
3. 学会使用SSMS创建、查看和管理数据库索引。 4. 分析和优化数据库索引,以提升查询性能。 5. 理解索引对数据库写操作的影响,平衡查询性能与存储成本。 二、学习内容 1. 索引基础:索引的定义、结构以及工作原理...
本文将深入浅出地介绍数据库学习入门及基础概念,旨在帮助初学者快速掌握这一关键技术。 首先,理解数据库的基本概念至关重要。数据库可以被视为一个有序的数据集合,这些数据按照特定的方式组织,以便高效地检索、...