mysql索引填充因子_处理索引碎片,填充因子(FILLFACTOR)

设置填充因子是否重要?我认为是。很多资料都提到,缺省的填充因子取值一般情况下是较优的,而且建议除非你很清楚在做什么,否则不要更改填充因子取值。就像数据库管理员常识那样,除非你理解你正在做什么,否则不更改任何设置是明智的。说得虽然没错,但是到底该如何确定填充因子取值,以及知道该做什么?我试图找到一个确定取值的简单公式。你猜结果如何?我找不到。

为了理解填充因子,有必要好好理解聚集和非聚集索引,堆表(heap tables),扩展盘区(extents),页(pages),页拆分(page splits),以及DBCC SHOWCONTIG命令结果。如果你不熟悉这些概念,我建议参考SQL Server联机帮助,或者相关背景的资料。理解SQL Server物理文件结构的组成是十分重要的。

基本上填充因子是指当索引被创建和重建时,指定存储记录的叶节点页空间的百分比。我们也许以前都看过这个定义,但是该定义中有一个常被人忽视的关键点--“当索引被创建和重建时”。一旦页拆分发生,经过拆分后生成的两个新页上,原来设置的填充因子取值就失效了。当索引创建时,如果指定填充因子为80,意味着每个页只使用80%的空间。在某个页填入数据后,例如添加新记录或者修改记录,页拆分为两个新页,并且填充空间均为50%。原来那个填充因子对这两个新页失效。如果你没有重建索引,那么除非数据量很小,或者数据更新很小,否则很可能会产生很多页拆分,并且最早的填充因子会失效。

还是那个问题,我们该设置填充因子为多少呢?取值低,则需要更多的页来存储数据,因而读取范围大;这会影响性能。取值高,则会造成大量的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值