由于公司电子商务网站平台版本老化,且使用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。
分享到:
相关推荐
1.索引的创建与使用 2.创建索引的原则 3.索引的分类 4.创建索引的多种方法 5.管理索引 6.索引优化 7.查看、修改索引属性 8.修改索引名 9.删除索引
oracle、sqlserver数据库批量删建索引,方便好用,提高数据库查询效率,提升系统运行效率,特别是数据量比较大的情况下
完整版Oracle11数据库教程课件 第6章_创建表及约束(共39页).ppt 完整版Oracle11数据库教程课件 第7章_高级查询(共52页).ppt 完整版Oracle11数据库教程课件 第8章_索引视图(共35页).ppt 完整版Oracle11数据库...
oracle创建索引很好的参考资料,好的索引能够非常大的提高数据库的查询速度
湖南电信Oracle培训之索引创建.ppt
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
完整版Oracle11数据库教程课件 第6章_创建表及约束(共39页).ppt 完整版Oracle11数据库教程课件 第7章_高级查询(共52页).ppt 完整版Oracle11数据库教程课件 第8章_索引视图(共35页).ppt 完整版Oracle11数据库...
其中第1部分:基本的数据库管理,介绍Oracle 数据库管理员的职责、创建Oracle 数据库、使用Oracle 管理的文件以及如何启动和关闭数据库。第2部分:Oracle 服务器进程和存储结构,详细讲解管理Oracle 进程、管理...
创建数据库是开发Oracle9i数据库应用程序的前提,数据库管理(包括对表空间和段的管理)是Oracle9i的基本工作。 5.1 管理数据库 Oracle9i数据库是由操作系统文件组成的,创建数据库的过程就是指定这些数据库文件的...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
在Oracle数据库中,创建索引虽然比较简单。但是要合理的创建索引则比较困难了。
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
12 索引段:存储数据库索引数据,当执行 CREATE INDEX语句建立索引时,Oracle自动 建立索引段。索引段一般存储在INDX表空间下 临时段:在执行查询、排序、等操作时, Oracle自动在TEMP表空间上创建一个临时段。 ...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...
数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共33页).pdf 数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库...