DML:数据库操作语言,包括增删改操作
添加数据对索引的影响
在之前的文章中,给people表创建了索引后,表中的所有数据将按照字母表顺序进行分块处理,假如分成两个块
C | M |
---|---|
Charles,David,James,John,Joseph | Michael,Richard,Robert,Thomas,William |
当往数据中插入一条name为Bill的数据时,数据表要做更多的操作,例如先要在Charles前插入Bill,然后数据块1中的数据往数据块2中移,数据块2又满了,得新增数据块3。因此,由于插入数据的不可知性,对于插入操作来说,索引造成的操作开销是普通表的l两倍以上。
修改数据对索引的影响
将原来name为James的数据修改为Winne时,修改的数据会反应到数据表中,但是索引项不会被删除,原索引项只会被标记为不可用,新的索引重新添加到相应的数据块中。这虽然减小了数据库操作的开销,但是带来了空间上的浪费。
删除数据对索引的影响
删除只会把相应的索引项打上删除标记,表明该索引项不可用,但是依然形成了对存储空间的浪费。
因此小数据量的表不宜使用索引,频繁使用插入、修改、删除等操作的数据表也不宜使用索引