database concept

来源:这里教程网 时间:2026-03-02 11:12:56 作者:

填充因子只在创建索引时执行;索引创建后,当表中进行数据的添加、删除或更新时,不会保持填充因子。即创建索引完后添加数据,比如添加”COM”,则会添加在Page100的”CON”的前面,此时Page100的剩余空间将小于40%。因为充满度只有60%,所以”Barr”和”CON”之间会有空隙,所以”COM”将直接插入他们之间,不会照成数据移动和页分裂。如果充满度是100%即整页充满数据,则会照成”CON”及它后面的数据都向后移动1位,然后在”CON”前面插入”COM”,而Page100会大约一半的行(后半部)移到新页中以便为新行腾出空间(这种重组称为页拆分。页拆分会降低性能并使表中的数据存储产生碎片.),在这些移动的过程中一方面速度明显下降,另一方面会产生碎片。添加完数据后要使填充因子继续保持60%则需要重建索引。 填充因子大的时候,插入或修改记录后重新索引的工作会很大,磁盘IO操作增加,性能必然降低,但其占用空间小.填充因子小的时候,索引文件占用磁盘及内存空间相对要大,但是,系统本身重新索引所需IO操作减少,性能提高,只是多占用一些存储空间. 孰轻孰重要自已决定。

聚簇索引和非聚簇索引的区别就是:聚簇索引的数据物理存储顺序和索引顺序一致的,也就是它的数据就是按顺序排下来的。非聚簇索引的数据存储是无序的,不按索引顺序排列。

再看图B,它是把这个索引列的数据复制了一份然后按顺序排下来,再建立索引。每行数据都有一个指针。 <p style="margin:10px auto;font-family:"font-size:14px;white-space:normal;background-color:#FFFFFF;"> 我们再来找”Rudd”.首先从索引页的根开始找,查找原理跟聚集索引是一样的。在索引页的Page61找到”Rudd”,它的指针是470501,然后在数据页的Page5找到470501,这个位置就是”Rudd”在数据库中的实际位置,这样就找到了”Rudd”。

相关推荐