我即将开始使用MonetDB,但从MySQL转换是一个很高的固定成本。主要的吸引力是在数据库中编译的。
问题是:MonetDB的内存占用如何随WHERE和GROUP BY发展
考虑以下案例
"选择公司,年,R_funct_calculate_something(x,y,z,d,e) 来自monetdb_db.db_table1 在1999-01-01'之间的年份。和' 2010-01-01' 按公司分组,年度和#34;
似乎MonetDB OUGHT 读取的数据相当于......的大小......
(1) [size(x)+ size(y)+ size(z)+ size(d)+ size(e)+ size(firm)+ size(yearmonth)] * group_size
其中,团体规模是企业个人成员的年数。我想在这种情况下,11年* 12个月的数据有限。
对我而言,显而易见的是,我们只会读取列维度中的数据,但行维度似乎不那么明显。
(2)另一种可能性是代替group_size,它将THE WHOLE TABLE读入内存。
(3)另一种可能性是代替group_size或整个表大小,它读取表对应于WHERE语句的部分。
这是什么?如果它(2)那么我没有必要切换非常长的数据集的情况,因为整个表被读入内存会击败大于内存的数据点,但我想是辉煌的MonetDB的人们正在做最聪明的事情。
谢谢!