1 索引创建规范和适用情况
1. 对于经常查询的大表,如果返回数据少于15%,需要创建索引(可根据字段和全表描速度做调整,全表扫描越快,这个值越低)
2. 表的主键和唯一健会自动创建索引,外键一般情况下考虑创建索引
· 外键不创建索引的后果(死锁);
· 对于外键,业务表一般需要创建索引(频繁发生DML操作的表);
· 对于代码表一般可以不创建创建索引(数据基本不会发生改变的表);
3. 在经常使用的关联查询的连接字段上面创建索引,以提高性能。
4. 经常查询且部分查询值选择性很强需要创建索引
5. 列中包含很多空值,但是查询条件都是需要有值的,需要创建索引
6. 复合索引的建立
- 正确选择复合索引中的第一个字段,一般是选择性较好的且在where 子句中常出现的字段上;
- 复合索引的几个字段是否经常同时以and方式出现在where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
- 如果复合索引中包含的字段经常单独出现在where子句中,则分解为多个单段索引,同时考虑删除复合索引;
- 如果复合索引所包含的字段超过3 个,那么仔细考虑其必要性,考虑减少复合的字段;
2 不适合索引的情况
1. 包含很多空值,但是经常查询的语句中返回条件包含了空值的
2. Long和raw字段不能创建索引
3. 表非常小,如少于500-1000行数据,不需要创建索引
3 索引维护
1. 定期检查不使用的索引,对于不使用的索引应该进行删除,分析没有效果的索引,定期进行整理
2. 定期检查索引的碎片情况,对于碎片太多的索引进行重建
参考文档:http://docs.oracle.com/cd/E11882_01/server.112/e25494/indexes002.htm
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21605631/viewspace-762530/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21605631/viewspace-762530/