索引对DML的影响

探讨了数据库操作语言(DML)中增删改操作对索引的影响,包括插入数据时索引的重排及存储开销增加,修改数据时索引项的更新机制,以及删除数据时对存储空间的潜在浪费。

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

DML:数据库操作语言,包括增删改操作

添加数据对索引的影响

在之前的文章中,给people表创建了索引后,表中的所有数据将按照字母表顺序进行分块处理,假如分成两个块

CM
Charles,David,James,John,JosephMichael,Richard,Robert,Thomas,William

当往数据中插入一条name为Bill的数据时,数据表要做更多的操作,例如先要在Charles前插入Bill,然后数据块1中的数据往数据块2中移,数据块2又满了,得新增数据块3。因此,由于插入数据的不可知性,对于插入操作来说,索引造成的操作开销是普通表的l两倍以上。

修改数据对索引的影响

将原来name为James的数据修改为Winne时,修改的数据会反应到数据表中,但是索引项不会被删除,原索引项只会被标记为不可用,新的索引重新添加到相应的数据块中。这虽然减小了数据库操作的开销,但是带来了空间上的浪费。

删除数据对索引的影响

删除只会把相应的索引项打上删除标记,表明该索引项不可用,但是依然形成了对存储空间的浪费。

因此小数据量的表不宜使用索引频繁使用插入、修改、删除等操作的数据表也不宜使用索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值