第九章 且慢,弄清索引之阻碍让SQL飞

文章探讨了索引在SQL查询中的不足,如何在优化中权衡使用,以及索引失效和丢失的各种情况,包括分区表的影响、操作后的重建需求。同时,提到了数据插入对索引性能的影响,并给出了检查和管理无效或低效索引的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考《收获,不止SQL优化》作者: 梁敬彬 / 梁敬弘

一、 索引的不足之处

在这里插入图片描述

二、 索引的取舍

在这里插入图片描述

三、 结合案例

在这里插入图片描述

四、 习题

在这里插入图片描述
习题1:
(1) SQL写法导致:列上加函数、列隐式类型转换、HINT固定全表扫描
(2) SQL写法没问题,但是优化器考虑到回表认为走索引代价更大,不如直接全表扫描

习题2:
索引失效:
(1)分区表:除了ADD,其他分区操作会导致全局索引失效;MAX分区有值用了SPLIT会导致分区索引失效
(2)MOVE操作后没有重建索引
(3)表中有LONG字段类型,后对该字段类型做了修改,会导致该表的索引失效
(4)人工误设UNUSABLE

索引丢失:
闪回操作(其实也没有丢失,只是被系统重命名了)

习题3:
数据插入时,除了往数据表里插入数据,每个索引树也都会插入数据(只要索引序列不为空)。而往索引树插入数据时必须有序,就会产生排序、块分裂等其他的一些开销。从而影响插入性能。

习题4:
(1)、检查失效的索引
(2)、检查(A,B)(A)这种索引,合并
(3)、检查索引列过多的索引(>4)
(4)、检查一段时间不用的索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值