管理索引表:深入研究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 索引已损坏。
不能删除约束所需的索引,因此,必须先禁用或删除相关的约束。
转载于:https://www.cnblogs.com/polestar/archive/2012/04/27/2473608.html
管理索引表:深入研究B树索引--重建,合并,删除(理论篇3)相关推荐
- MySQL(InnoDB剖析):24---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂
一.B+树索引概述 B+树索引的本质就是B+树在数据库中的实现.但是B+索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的高度一般都在2~4层,也就是说查找某一键值的行记录最多只需要2~4 ...
- MySQL(InnoDB剖析):---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂
小伙伴们大家好!今天是大年三十,给大家拜个早年!在此小弟祝各位大哥们与家人团团圆圆,和和睦睦,新的一年身体健康,工作顺利! 一.B+树索引概述 B+树索引的本质就是B+树在数据库中的实现.但是B+索引 ...
- null索引表键值_MySQL 的B+树索引
一.B+树索引概述 索引是应用程序设计和开发的一个重要方面.若索引太多,应用程序的性能可能会受到影响(需维护索引的结构和数据):而索引太少,对查询性能又会产生影响. 二叉树,左子树的键值总是小于根的键 ...
- 图解 MySQL 索引:B-树、B+树
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://tinyurl.com/y5ymnj9a 一. ...
- 图解 MySQL 索引:B-树、B+树,终于搞清楚了!
看了很多关于索引的博客,讲的大同小异.但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引-. 或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结 ...
- 图解MySQL索引:B-树(B+树)
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:收藏了!7 个开源的 Spring Boot 前后端分离优质项目个人原创+1博客:点击前往,查看更多 作者:浪人 ...
- Oracle索引梳理系列(二)- Oracle索引种类及B树索引
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 快速查询的秘籍 —— B+ 树索引
B+树索引 标签: MySQL是怎样运行的 前边我们详细唠叨了InnoDB数据页的7个组成部分,知道了各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每 ...
- Mysql B+树索引
原文地址:https://amos-x.com/index.php/amos/archives/mysql-btree-index/ 前言 索引是数据库提高查询效率的常用办法,那么索引为什么能提高查询 ...
最新文章
- PyCharm使用笔记
- 【浙大出品】基于扩展FPN的小目标检测方法
- matlab 最小二乘法拟合_机器学习十大经典算法之最小二乘法
- 阿里巴巴开源分布式框架Seata TCC模式深入分析
- go本地调用image-syncer
- struts2.0和jQuery1.5的json问题
- vue使用process.env搭建自定义运行环境
- 15分钟从零开始搭建支持10w+用户的生产环境(二)
- 学习分布式不得不会的BASE理论
- SQL 年龄段 品牌分类 分组统计
- HDFS 读取、写入、遍历文件夹获取文件全路径、append
- 【Spark调优】聚合操作数据倾斜解决方案
- 不透水面提取操作实现
- Confluence 6 恢复一个空间
- 实现计算机系统的资源共享,实现多操作系统计算机的资源共享
- X64dbg脚本实现自动DUMP运行中解密出的PE文件
- java实现高德地图app_入门指南-高德地图手机版 | 高德地图API
- 2021-02-25 银行业十大主题记忆
- 帝国CMS7.5照样可以高仿haosf网站风格
- 看着大公司送的中秋礼物,我酸了。
热门文章
- PHP设置禁止目录索引,/var/www/html目录索引禁止
- java datahandler_Java Web Services:使用DataHandler类发送文件
- input限制文字个数但是输入中文时会被切断_Python文字转换语音,让你的文字会「说话」抠脚大汉秒变撒娇萌妹...
- linux 内核调试信息在哪里,Linux kernel debug技巧----开启DEBUG选项
- 不属于未来计算机范畴,智慧职教云课堂工程数学-2020年春网课答案
- linux停止客户端,linux – 从客户端打印motd停止ssh登录?
- oppor17android版本,OPPOR17ColorOS系统怎么样
- ftl模板导出excel_freemarker导出复杂Excel
- python基础知识整理 第六节:面向对象封装练习
- 【camera】2.相机成像原理和数学模型