Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 特定列的所有位图索引的压缩大小是否与表的大小成正比?_Database_Algorithm_Run Length Encoding_Bitmap Index - Fatal编程技术网

Database 特定列的所有位图索引的压缩大小是否与表的大小成正比?

Database 特定列的所有位图索引的压缩大小是否与表的大小成正比?,database,algorithm,run-length-encoding,bitmap-index,Database,Algorithm,Run Length Encoding,Bitmap Index,我在读丹尼尔·莱米尔的文章《神秘位图索引》(TheMythicalBitmap Index),他在文章中说 位图索引的压缩大小最多与表的大小成比例!不考虑不同值的数量 我很难看出他是如何计算这个值的 我知道,对于长度为N的运行长度编码文本,最坏情况下的空间使用量与N(2N?)so(N)成正比 我还知道,对于特定列的位图索引数来说,最坏的情况是列的基数为N,其中N是表中的记录数(因此每个记录在该特定列中都有一个唯一的值)。这意味着将有N个位图索引 然而,在位图索引的最坏情况假设下,当运行长度编码时

我在读丹尼尔·莱米尔的文章《神秘位图索引》(TheMythicalBitmap Index),他在文章中说

位图索引的压缩大小最多与表的大小成比例!不考虑不同值的数量

我很难看出他是如何计算这个值的

我知道,对于长度为N的运行长度编码文本,最坏情况下的空间使用量与N(2N?)so(N)成正比

我还知道,对于特定列的位图索引数来说,最坏的情况是列的基数为N,其中N是表中的记录数(因此每个记录在该特定列中都有一个唯一的值)。这意味着将有N个位图索引

然而,在位图索引的最坏情况假设下,当运行长度编码时,每个位图索引将具有恒定的空间使用量,因为它只是一些零,1,后面跟着一些零,所以O(1)

因此,最高基数N下所有位图索引的总空间使用量仅为nxo(1)=O(N)

但是,对于所有可能的情况,如何从这个特定的计算转到最坏的情况?我不清楚我所描述的情况,其中基数=N,是所有位图索引加在一起的最坏情况


如何计算为表中的一列添加的所有运行长度编码位图索引的最坏情况下的空间使用率

根据位图索引的性质,整个矩阵中的1s数不会超过N(如果所有值的列都已就位,则等于N)。N[i]1s的列的压缩大小将为O(N[i])(最坏的情况是1s和0s交替出现)。因此,压缩列的总大小不会超过O(总和(N[i])