整理一下对pctused和pctfree的理解
1 楼 zzwssfd 23 小时前 引用
请教:下面的理解是否正确。pctfree=20,pctused=40
1,一个新的数据块,不停的向其中插入数据,当数据块容量被利用超过40%后,不能再向其中 插入数据。那么 虽然pctfree=20,实际上有60%的空间是用来更新的。
2,一个刚好空间被利用80%的数据块,是不能向其中插入数据的,但可以更新。直到这个数据块的已使用空间小于 40%,才能继续插入数据。且到40%时,不能插入。
2 楼 czmmiao 7 小时前 引用
1、当一个块的使用空间达到100-pctfree值时,这个块从自由列表脱离。当pctfree为20,数据块使用40%的时 候,可用来做insert的空间为100-pctfree-40=40%。pctfree的20%空间主要是为以下场景准备的,数据块已经 使用了80%或者接近80%的空间不会再进行insert,此时如果update数据块中的现有内容,则会利用到剩余的 20%进行update,你的说法不能说完全错误,感觉表达不是很准确。
2、文档上是说降到pctuesd后才会继续使用该块进行insert,我认为没有必要折腾是否在这临界值上会进行 insert,实际意义不大。
3 楼 zzwssfd 7 小时前 引用
又把文档看了一遍,现在是这样理解的:
一个新的数据块,可以不停的插入数据,直到空间使用率是100-pctfree后不能继续插入(而不是空间使用率超过 pctused后,就不能插入)。而这个数据块要想再插入数据,只有当它的空间使用率在pctused之下以后(而不是小 于100-pctfree),才能继续插入数据,直到空间使用率再次超过100-pctfree。