MonetDB表统计信息

时间:2015-04-14 22:22:18

标签: monetdb

以下是我的一张表的统计数据的一部分。我不确定如何理解宽度列。这些值是以字节为单位吗?如果是这样,我知道fnamelname的ascii字符数高于5和6,并且mname中有1个字符长值。

更新1。 以下是select * from statistics的输出。我只显示了输出的前5列。

+--------+---------+------------------------+---------+-------+
| schema | table   | column                 | type    | width |
+========+=========+========================+=========+=======+
| abc    | targets | fname                  | varchar |     5 |
| abc    | targets | mname                  | varchar |     0 |
| abc    | targets | lname                  | varchar |     6 |

1 个答案:

答案 0 :(得分:0)

width显示原子数组的"字节宽度" (在gdk.h中定义)。然而,这不是字符串列的整个故事,因为这里的原子数组只将偏移存储到字符串堆中。

MonetDB使用可变宽度列,因为如果几乎没有不同的字符串值,64位偏移将浪费内存。因此,在您的情况下,fname列需要5个字节或40位的字符串偏移量,lname需要6个字节(48位)。如果插入新值,则可能会更改。

mname的零值很有意思,因为新列的宽度初始化为1。你使用的是哪个版本?

相关问题