zoukankan      html  css  js  c++  java
  • 管理索引表:深入研究B树索引重建,合并,删除(理论篇3)

    重建索引
      如果表中记录频繁地被删除或插入,尽管表中的记录总量保持不变,索引空间的使用量会不断增加。虽然记录从索引中被删除,但是该记录索引项的使用空间不能被重新使用。因此,如果表变化不定,索引空间量会不断增加,不论表中记录数量是否增加,这是因为索引中无效空间会增加。 要回收那些曾被删除记录使用的空间,需要使用Alter index rebuild命令。

      重建索引有两种方法:一种是最简单的,删除原索引,然后重建;第二种是使用ALTER INDEX … REBUILD命令对索引进行重建。

    需要重建判断依据:

      1.height >4

      2.pct_used < 50%

      3.del_lf_rows / lf_rows +0.001 > 0.03

    合并索引

      合并索引只是简单地将B树叶子节点中的存储碎片合并到一起,并不会改变索引的物理结构。

    合并索引和重建索引都可以清理索引数据块中的碎片,但是又有区别:

    合并索引:

      1.不能将索引移动到其他表空间

      2.代价比较低,不需要使用额外的存储空间

      3.只能在B树的同一子树种进行合并,不会改变树的高度

      4.可以快速释放叶子节点中未使用的存储空间

    重建索引:

      1.可以将索引移动到其他的表空间

      2.代价比较高,需要使用额外的存储空间

      3.重建整个B树,可以降低B树的高度

      4.可以快递更改索引存储参数,如果在重建中指出了ONLINE关键字,还可以再重建索引时使用索引。

    删除索引

      1. 应用程序不再需要索引时,可将索引删除。

      2. 在大量加载数据前,先删除索引,加载后再重新创建索引,这样做的好处有:
        – 提高加载性能
        – 更有效地使用索引空间

      3. 仅定期使用的索引无需不必要的维护,尤其在基于易失表时更是如此。这是 OLTP 系统中的通常情况,在该系统中,年末或季度末会生成特殊的查询,以收集在总结会上使用的信息。

      4. 当在某种类型的操作(如加载)期间出现例程失败时,可能会将索引标记为INVALID。在这种情况下,需要删除并重建索引。

      5 索引已损坏。

      不能删除约束所需的索引,因此,必须先禁用或删除相关的约束。

  • 相关阅读:
    下载安装Cygwin
    WEB中调用Nutch执行JOB抓取
    IKAnalyzer 分词
    【转】JDBC连接数据库
    单例模式的常见写法
    14 Go's Declaration Syntax go语言声明语法
    13 JSON-RPC: a tale of interfaces
    12 Release History for go go语言的版本历史
    11 The Go Memory Model go语言内置模型
    09 Command Documentation 命令文档
  • 原文地址:https://www.cnblogs.com/polestar/p/2473608.html
Copyright © 2011-2022 走看看