`

Oracle中表建立联合索引后,其中的一个字段是否可以用来进行索引

 
阅读更多

1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。

 

分享到:
评论

相关推荐

    [Oracle]如何在亿级记录表中创建索引

    在Oracle数据库中处理亿级数据量的表时,合理的索引设计是优化查询性能的关键因素之一。索引能够加快数据检索的速度,减少I/O操作次数,但同时也可能会增加插入、更新或删除操作的成本。因此,在大规模数据表上创建...

    oracle实现多字段匹配一个关键字查询

    在Oracle数据库中,有时我们需要对多个字段进行联合搜索,即多字段匹配一个关键字查询。本文将详细介绍两种在Oracle中实现这种查询的方法。 ### 一、使用管道符号(||)连接字段 这种方法通过使用Oracle中的字符串...

    Oracle复合索引与空值的索引使用问题小结

    Oracle数据库在处理复合索引和空值时的行为是SQL优化中的一个重要知识点,特别是对于大型数据库系统来说,理解这些细节能够显著提升查询效率。本文将详细探讨Oracle如何处理含有空值的复合索引以及非空约束对索引...

    WEBHR9.0索引建立帮助文档.pdf

    《WEBHR9.0索引建立帮助文档》是...综上所述,WEBHR9.0系统的索引建立是一个结合业务需求、数据库特性和性能优化的综合过程。理解并遵循上述原则,将有助于构建高效、稳定的数据库环境,提升WEBHR系统的整体运行效率。

    oracle多表查询

    通过为同一个表定义不同的别名,可以实现这种关联,如`emp e, emp l`,其中`e`代表雇员,`l`代表领导。 7. 分步思考与解决策略: 面对复杂的多表查询,可以按照以下步骤进行: - 确定所需的数据表及其字段。 - 找...

    oracle数据库索引失效

    Oracle数据库索引失效是一个常见的性能问题,它可能导致查询效率降低,影响系统的整体性能。索引失效可能是由多种原因引起的,理解这些原因并采取适当的预防措施至关重要。 首先,当WHERE子句中的条件筛选出的数据...

    数据库字段获取

    2. 字段(Field):字段是数据表中的一个列,它定义了特定数据类型和含义,比如姓名(String)、年龄(Integer)或日期(Date)。每个字段都有一个唯一的名称,用于标识其在表中的位置和功能。 3. SQL查询:获取...

    mysql数据库以及索引详解.pptx

    - 在一个SELECT语句中,索引只能使用一次(如在WHERE中使用后,在ORDER BY中不再有效)。 - 在查询条件中使用不等于符号(包括<、>、!=)可能导致索引失效。 通过理解MySQL及其索引的基本概念,开发者可以更好地...

    基于索引的SQL语句查询优化方法.pdf

    5. WHERE子句中常用的字段,尤其是大表的字段,需建立索引。 6. 尽量避免在过长的字段上建立索引。 建立索引可以显著提高查询速度,但过度索引可能导致插入、更新和删除操作的性能下降,因此平衡索引的利弊是关键。...

    ORACLE SQL入门与实战经典

    根据所提供的文件信息,无法提供具体的Oracle SQL知识点,因为文档内容主要是关于图书专营店的重复信息,并且其中并没有包含实际的Oracle SQL教学内容。...希望这可以为Oracle SQL的学习者提供一个全面的入门指南。

    40057GC11 - Introduction to Oracle9i:SQL Basics Tutorial

    Oracle9i是一款由甲骨文公司推出的数据库管理系统,它的全称是Oracle9i Database,是Oracle数据库产品线中的一个重要版本。本教程“40057GC11 - Introduction to Oracle9i:SQL Basics Tutorial”旨在为初学者提供...

    数据库课程设计 Oracle

    在Oracle数据库中,视图(View)是一种虚拟表,它的数据来源于一个或多个表的SQL查询结果。在这里,dw_cx可能是为了方便用户查看和检索学生信息,例如按姓名、学号等条件进行筛选和排序。 在PowerBuilder(PB)中,...

    数据库模型设计规范_-_Oracle分册V1.0.pdf

    同时,建立联合索引需要谨慎,并且需要控制单表索引的数量。 关于表的空间及表的用户,规范也给出了建议,例如尽量规划在同一表空间,以及对大表的数据保留策略。触发器作为数据库的一个重要对象,其设计也需要遵循...

    Oracle开发必备手册

    第五章连接查询是SQL中的重要概念,包括内连接(INNER JOIN)、外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)以及自连接,它们用于从多个表中联合提取数据,是处理复杂数据关系的关键。 第六章数据分组与第七章子...

    处理group by 查询速度太慢的问题 数据量大.doc

    例如,在本实例中,需要将 device_id、product_id 和 log_time 三个字段设置为联合索引。 知识点2:索引字段的选择 在设置索引时,需要选择合适的字段。除了 Group By 字段外,还需要考虑聚合函数用到的字段。例如...

    Mysql Oracle 数据库开发设计及使用规范

    - 联合索引命名时按创建顺序列出字段名,限制不超过3个字段。 - 索引名称长度不得超过30个字符。 **2.7 包命名** - 包命名根据用途区分: - 功能模块包命名格式为`PKG+_+模块名`。 - 个人功能或数据处理包命名...

    网上书店系统oracle数据库创建

    本文将深入探讨如何利用Oracle来创建一个网上书店系统,包括数据库的设计、表的创建以及功能的实现。 首先,设计数据库是整个系统的基石。网上书店系统需要存储的信息包括书籍信息(如书名、作者、出版社、ISBN码)...

    在被甲骨文公司收购后,现在属于甲骨文公司(Oracle) 旗下产品 Oracle 大幅调涨MySQL商业版的售价,因此导致自由软

    联合索引中,如果查询条件不是第一个字段,索引同样失效。对索引字段进行算术运算,使用不等于`!=`或`<>`,`NOT IN`,`IS NULL`或`IS NOT NULL`等操作,都可能导致索引失效。不同字符编码的表在JOIN时可能无法利用...

    Oracle_系统表大全.doc

    - **创建数据库链**:允许从一个数据库访问另一个数据库中的对象。 - **示例命令**: ```sql CREATE DATABASE LINK dbl_spnew CONNECT TO spnew IDENTIFIED BY spnew USING 'jhhx'; ``` ##### 12. 触发器管理...

Global site tag (gtag.js) - Google Analytics