Atitit.分区对索引的影响 分区索引和全局索引 attilax总结
Atitit.分区对索引的影响 分区索引和全局索引 attilax总结
1. 分区的好处
在一个表的数据超过过2000万条或占用2G空间时,建议建立分区表
分区使得数据管理操作如数据装载、索引建立和重建、备份和恢复等在分区级别上完成,这比在表级完成操作要明显的节省时间;
分区可以提高性能,在很多情况下,查询可以通过扫描某个分区来完成,而不是去扫描整个表;
根据查询条件自动将扫描范围缩小到一个或几个表(索引)分区上。这种方式其实是分区扫描替代了全表扫描。
如果连接查询的两张表都在连接列上进行分区,则 会优化连接操作,将一个大的连接分成各个对应分区间的连接,而且这些分区连接操作还可以并行执行。
并行DML:采用并行执行,可以使操作并行在各个分区上同时执行,从而提供执行效率。
2. 分区键:
分区表中的每条记录都唯一的属于一个分区,分区键就是确定一条记录属于哪个分区的一列或多个列。
分区键可以由1~16列组成,可以包含空值,不能包含ROWID、LEVEL或MLSLABEL等伪列
3. 分区的建议:
表的大小超过2G就可以考虑是否分区;
包含历史数据的表。这种表一般采用时间字段的范围分区,新的数据总是装载到新的分区中
4. 分区索引和全局索引:
分区索引就是在所有每个区上单独创建索引,它能自动维护,在drop或truncate某个分区时不影响该索引的其他分区索引的使用,也就是索引不会失效,维护起来比较方便,但是在查询性能稍微有点影响。
本地分区索引和全局分区索引。
本地分区索引采用和表的等同分区,因此,在对分区进行操作时(如ADD PARTITION或DROP PARTITION等),Oracle会自动维护本地分区索引的正确性。
全局分区索引可以采用和表不同的分区范围或分区方式。一般对分区执行了DDL操作后,全局索引都会处于INVALID状态,不过9i增加了新的语法,UPDATE GLOBAL INDEXES,使得DDL在操作分区数据的之后维护全局索引的正确性。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
5. 全局索引就是在全表上创建索引,
它可以创建自己的分区,可以和分区表的分区不一样,也就是它是独立的索引。
在drop或truncate某个分区时需要创建索引alter index idx_xx rebuild,也可以alter table table_name drop partition partition_name update global indexes;实现,但是要花很长时间在重建索引上。可以通过查询user_indexes、user_part_indexes和user_ind_partitions视图来查看索引是否有效。
或者把全局索引分成多个区(注意和分区表的分区不一样):
create index idx_ta_c4 on ta(c4) global partition by range(c4)(partition ip1 values less than(10000),partition ip2 values less than(20000),partition ip3 values less than(maxvalue)); |
6. 总结
在频繁删除表的分区且数据更新比较频繁时为了维护方便避免使用全局索引。
7. refer
分区表、分区索引和全局索引部分总结_数据库技巧_IT专家网.htm
Atitit.分区对索引的影响 分区索引和全局索引 attilax总结
分区表和分区索引——数据库概念-yangtingkun-ITPUB博客.htm
相关文章
- MySQL: Hash索引优缺点
- 技术分享 | MySQL 大表添加唯一索引的总结
- 【ES三周年】ES数据索引和查询优化的技术总结
- PHP array_key_exists():判断数组的键名或索引是否存在
- MongoDB的基础查询和索引操作方法总结
- MySQL索引原理详解
- MySQL查询性能优化索引下推
- 深入理解Oracle中的中文索引(oracle中文索引)
- 构建Oracle表空间索引的方法(oracle表空间索引)
- 构建Oracle数据库索引:顺序优化(oracle索引顺序)
- 优化SQL Server 性能的索引策略(sqlserver索引)
- MySQL索引:提升查询速度的利器(mysql索引为啥快)
- 优化Oracle数据库:索引压缩技术(oracle索引压缩)
- 大数据的管理:Oracle索引分区(oracle索引分区)
- 优化SQLServer:构建索引表的宝典(sqlserver索引表)
- MSSQL数据库中索引优化的清除方法(mssql 索引清除)
- MySQL如何通过建立索引提升查询效率(mysql 建 索引)
- 优点MySQL索引:优势分析(mysql 索引有哪些)
- 如何创建MySQL两表联合索引(mysql两表联合索引)
- MySQL中的Blob索引什么样的性能提升(blob索引mysql)
- Oracle的IN走索引技术(in走索引 oracle)
- Oracle中生效的索引带来的好处(oracle中使索引生效)
- asp.netgridview的Rowcommand命令中获取行索引的方法总结
- MySQL前缀索引导致的慢查询分析总结
- Oracle关于重建索引争论的总结