由于公司电子商务网站平台版本老化,且使用oracle数据库,前期DBA在设计数据库建表结构时候存在一定的问题,对索引的使用不够重视,大致数据的查询比较慢(当然也有一些由于使用hibernate中不够重视
ORACLE采用自下而上的顺序解 析WHERE子句,根据这个原理,表之间的连接必须写在其他 WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾 等问题),现从伟大的互联网淘到了如下建议:
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
F、在查询语句中,where条件中使用到单字段索引,无论它的位置在哪里都会使用到单字段索引
G、在查询语句中,where条件中出现且仅出现复合索引,只要复合索引表中的第一个字段出现即可成功使用
H、在查询语句中,where条件中既出现到复合索引又出现到单字段索引,如果仅出现复合索引的一个字段,那么oracle一般使用单字段索引,如果正确出现复合索引中的多个字段,那么oracle一般使用复合索引
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响;以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。
hibernate虽然存在大家喊的这样那样的问题,但是如果合理使用hibernate,夯实基础也没有大家说的那么差,当然互联网还是建议使用ibatis类似的orm framework。
分享到:
相关推荐
数据库索引是数据库性能优化的重要手段之一。创建索引可以提高查询速度,降低数据库的负载,提高数据的安全性。本文将详细介绍数据库创建索引的原则、分类、创建方法、管理和优化等方面的知识点。 索引的概念和优点...
"iTelluro.Tools.SqlIndex"这个工具很可能是一个帮助管理和优化数据库索引的实用程序,可能提供了图形化界面或API,使得在Oracle和SQL Server之间进行索引的批量创建和删除变得更加便捷。使用这样的工具,可以大大...
在Oracle数据库管理系统中,创建表和唯一索引是数据库设计中的关键步骤,它们对于数据的组织、查询效率和数据完整性至关重要。以下将详细介绍如何创建学员信息表,创建唯一索引,以及如何修改表来添加主键和检查约束...
### Oracle数据库索引的维护 在Oracle数据库管理与优化的过程中,索引的维护是非常关键的一环。合理地创建、管理和优化索引能够显著提高查询性能,降低系统的响应时间,从而提升整个应用程序的效率。本文将从Oracle...
4. **创建数据库实例**:手动创建数据库不使用DBCA时,你需要使用SQL*Plus,Oracle的命令行工具。通过执行初始化参数文件(init.ora或spfile.ora)来启动一个数据库实例。实例是Oracle后台进程的集合,它们与实际的...
Oracle数据库中的索引维护是数据库管理员日常工作中至关重要的一部分,尤其是在大型企业级应用中,高效的索引管理能够显著提升查询性能和数据库的整体效率。本文主要关注Oracle8i版本中的B-tree索引维护。 首先,...
《Oracle与MySQL数据库索引设计与优化》这本书深入探讨了两个主流关系型数据库管理系统——Oracle和MySQL中的索引设计和优化策略。索引是数据库性能的关键因素,它们能够加速数据检索,提高系统效率,尤其在大数据量...
完整版Oracle11数据库教程课件 第6章_创建表及约束(共39页).ppt 完整版Oracle11数据库教程课件 第7章_高级查询(共52页).ppt 完整版Oracle11数据库教程课件 第8章_索引视图(共35页).ppt 完整版Oracle11数据库...
本文将深入探讨Oracle数据库索引的类型、作用以及如何合理创建和管理索引,以达到优化数据库性能的目的。 Oracle数据库中的索引是一种数据结构,它们按照一定的排序方式存储表中的数据值,使得数据库能够快速定位到...
Oracle数据库中的索引是提升查询性能的关键工具,它通过创建数据结构使得数据的查找、排序和连接操作更为高效。在“湖南电信Oracle培训之索引创建.ppt”中,我们可推断出讨论的重点是如何在Oracle数据库中创建和理解...
本文将围绕Oracle创建索引的基本规则进行深入探讨,旨在帮助读者更好地理解如何根据不同的场景选择合适的索引类型,并掌握创建索引时的一些关键考虑因素。 #### 一、B-Tree索引 B-Tree(平衡树)索引是Oracle中最...
默认情况下,Oracle创建的索引多为B树索引。 2.2 反向索引 反向索引将索引值反转存储,用于保持索引列的顺序。在Oracle实时应用集群中,尤其是在值连续增长的列上,反向索引表现出色。 2.3 位图索引 位图索引适用...
数据块是Oracle的基本存储单元,其大小在数据库创建时设定且不可更改。范围由连续的数据块组成,而段由一个或多个范围构成,包含特定逻辑存储结构的所有数据。要检查索引段的extent数量,可以使用如下查询: ```sql ...
本文主要探讨了在Oracle数据库中使用索引的一些关键点以及可能存在的误区。 首先,值得注意的是,索引并不总是查询的最佳选择。有时Oracle会选择全表扫描而非索引扫描。这可能是由于以下原因: 1. **统计信息不...
Oracle数据库在执行SQL查询时,有时会选择不使用已经创建的索引,这可能是由于多种因素导致的。以下是一些常见的原因及其详细解释: 1. **INDEX SKIP SCAN**: 当创建了一个组合索引,但是查询只使用了索引的非第一...
"OT_oracle数据库"是一个示例数据库,专为学习Oracle数据库设计和管理而创建。这个压缩包包含了一些关键文件,帮助用户了解Oracle数据库的结构、数据操作以及用户管理。 1. **ot_data.sql**: 这个文件通常包含了...
### Oracle 创建和删除索引详解 #### 一、Oracle索引概述 在Oracle数据库中,索引是一种重要的数据结构,用于提高数据检索速度。通过创建索引,可以显著提升查询性能,尤其是在处理大型数据表时更为明显。索引类似...
以上是Oracle数据库中创建表、索引、表空间、触发器、用户和序列的基本操作。在实际应用中,根据业务需求可能还需要考虑其他因素,如分区、约束、存储过程、视图等。掌握这些基本操作对于理解和管理Oracle数据库至关...
oracle创建索引很好的参考资料,好的索引能够非常大的提高数据库的查询速度
【Oracle数据库大作业】是一个关于Oracle数据库在教务管理系统中的应用项目,可能涵盖了数据库设计、实施、优化等多个方面的内容。这个大作业包含了PPT演示文稿、Word文档以及可能的源代码,为学习者提供了全面了解...