`

(转) 索引

    博客分类:
  • sql
 
阅读更多

复合索引的优点和注意事项

 

 

概念:     单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上;     用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引);     复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引;     同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引;     设计索引的一个重要原则就是能用窄索引不用宽索引,因为窄索引往往比组合索引更有效;

使用:     创建索引     create index idx1 on table1(col1,col2,col3)      查询     select * from table1 where col1= A and col2= B and col3 = C     这时候查询优化器,不在扫描表了,而是直接的从索引中拿数据,因为索引中有这些数据,这叫覆盖式查询,这样的查询速度非常快;  

 

注意事项:     1、对于复合索引,在查询使用时,最好将条件顺序按找索引的顺序,这样效率最高;     select * from table1 where col1=A AND col2=B AND col3=D     如果使用 where col2=B AND col1=A 或者 where col2=B 将不会使用索引
    2、何时是用复合索引     根据where条件建索引是极其重要的一个原则;     注意不要过多用索引,否则对表更新的效率有很大的影响,因为在操作表的时候要化大量时间花在创建索引中

    3、复合索引会替代单一索引么     如果索引满足窄索引的情况下可以建立复合索引,这样可以节约空间和时间

备注:     对一张表来说,如果有一个复合索引 on   (col1,col2),就没有必要同时建立一个单索引 on col1;     如果查询条件需要,可以在已有单索引 on col1的情况下,添加复合索引on (col1,col2),对于效率有一定的提高     同时建立多字段(包含5、6个字段)的复合索引没有特别多的好处,相对而言,建立多个窄字段(仅包含一个,或顶多2个字段)的索引可以达到更好的效率和灵活性

 

分享到:
评论

相关推荐

    真彩色和256色索引图的相互转换

    真彩色和256色索引图的相互转换,除去matlab自带函数外还附带kmeans算法

    语义分割数据集之RGB与索引图的转换

    针对语义分割数据集的rgb图(24位)和索引图(8位)之间的转换,使用matlab实现,具体见:https://blog.csdn.net/Return_0_/article/details/97623422

    matlab中灰度图转换成索引图

    本文将详细介绍如何在MATLAB中将灰度图像转换为索引图像,以及如何将索引图像转换回灰度图像,同时也会提及将真彩色图像转换为灰度图像的方法。 首先,我们来探讨灰度图与索引图的区别。灰度图像,也称为单通道图像...

    MySQL数据库应用 实验训练4:视图和索引的构建与使用

    MySQL数据库中的视图和索引是两个非常重要的概念,它们对于数据管理、查询效率和数据安全性都有着显著的影响。本实验训练旨在让学生通过实际操作来深入理解这两个概念。 首先,我们来看视图。视图可以被看作是...

    Oracle_Index 索引3

    本文将基于标题“Oracle_Index 索引3”及描述“Oracle_Index 索引”,深入探讨Oracle索引的基础知识、B树索引的构造原理及其对数据库性能的影响,旨在帮助读者更全面地理解Oracle索引的运作机制。 #### Oracle索引...

    深入研究B树索引.doc

    除了常见的B树索引之外,还有多种变体,如分区索引、非分区索引、常规B树索引、位图索引以及翻转索引等。不同类型的索引适用于不同的场景。例如,位图索引在处理高基数(即取值分布很广)但选择性较低(即过滤条件不...

    SQL性能优化以及索引的优化

    在数据库管理领域,SQL性能优化和索引优化是至关重要的技术环节,它们直接影响到数据库的运行效率和用户体验。本文将深入探讨这两个主题,提供丰富的知识和实践经验。 首先,SQL性能优化涉及一系列策略和技巧,旨在...

    oracle索引.pdf

    在Oracle中,索引分为多种类型,如分区和非分区索引、B树索引、位图索引和翻转索引。本篇主要讨论的是B树索引。 B树索引是Oracle中最常见的索引类型,它采用树形结构进行数据组织。B树索引主要由叶子节点、分支节点...

    oracle数据库 视图和索引

    Oracle数据库中的视图和索引是数据库管理中的关键概念,它们对提高数据查询效率和数据安全性具有重要作用。本文将深入探讨这两个主题。 首先,我们来理解视图的重要性和使用。视图是数据库的一个虚拟表,它并不实际...

    Excel列索引字母数字转换工具

    基于JavaScript开发的Excel列索引字母数字转换工具,可以输入Excel字母索引得到数字索引,也可以输入数字索引得到字母索引。一个小工具,可以作为参考。主要实现的是列字母、数字转换算法。基于JavaScript语言实现。

    CAD_to_REVIT颜色索引

    CAD_to_REVIT颜色索引,可以根据灰度值找到相应的颜色

    Oracle的索引是怎样炼成的

    Oracle的索引是一种数据库优化工具,它通过提供快速查找数据的方式加速查询操作。索引与图书的目录类似,目录中的条目对应于表中的数据,允许用户迅速定位所需信息。在Oracle数据库中,索引是一种特殊的段(segment...

    chap索引与散列实用PPT学习教案.pptx

    《磁盘与文件系统:深入理解索引与散列》 在计算机科学中,存储管理是至关重要的一个领域,特别是涉及到磁盘和文件系统时。本文将深入探讨磁盘的结构、索引与散列的概念,以及它们在提高数据访问效率方面的作用。 ...

    二分查找算法和索引查找算法的实现

    二分查找算法和索引查找算法是两种在计算机科学中广泛应用的高效搜索策略,尤其在处理大规模有序数据时。在本篇文章中,我们将深入探讨这两种算法的原理、实现及应用场景。 首先,我们来讨论二分查找算法。二分查找...

    Oracle第6章视图和索引操作.pptx

    Oracle数据库系统中,视图和索引是两个重要的概念,它们在数据管理和用户访问中起着关键作用。本章主要围绕这两个主题展开,分为视图和索引两大方面进行详细阐述。 首先,让我们来理解视图的基础知识。视图可以视为...

    15讲答疑文章(一):日志和索引相关问题1

    【MySQL日志与索引相关问题详解】 在MySQL数据库中,日志系统是确保数据完整性和高可用性的重要组成部分。本文将围绕日志系统,特别是binlog(归档日志)和redo log(重做日志)在崩溃恢复中的作用进行深入探讨。...

    ADBMS4.7-索引视图与分区.pptx

    在数据库管理系统(ADBMS)中,视图、索引和分区是提高数据访问效率和管理大规模数据的关键技术。本节将详细阐述这三个概念及其在实际应用中的重要性。 首先,让我们了解一下视图。视图是数据库系统中的一种虚拟表...

    索引图像旋转DEMO

    在计算机图形学中,图像处理是一项重要的任务,而索引图像旋转DEMO是这个领域的一个典型应用。索引图像,也称为调色板图像或8位图像,是一种使用颜色索引来表示像素颜色的图像格式。这种格式在资源有限或者需要高效...

    labview中的数组索引详细讲解

    LabVIEW 中的数组索引详细讲解 LabVIEW 中的数组索引是指在循环结构中自动完成数组元素的索引或累积的过程。这种能力称为自动索引(Auto-indexing)。在 LabVIEW 中,For 循环中自动索引功能是默认启用的,而 While...

    lucene索引优化多线程多目录创建索引

    本教程主要探讨的是如何利用Lucene进行索引优化,特别是通过多线程和处理多个目录来提高索引创建效率。 首先,我们需要理解Lucene的索引原理。Lucene将文档分解为词项(tokens),并对每个词项创建倒排索引。倒排...

Global site tag (gtag.js) - Google Analytics