MQO系统设计
2016-12-07 15:59:25 0 举报
AI智能生成
MQO
作者其他创作
大纲/内容
A 预操作(第二步实现)
I/O查询流的谓词集的识别
使用Jaccard Similarity
用谓词作为集合
设定适当的阈值能够进行查询簇精炼
B 精炼查询簇/查询簇重写(第一步实现)
如果实现了A操作取查询分类后的一组,否则所给查询簇须可使用MQO
寻找公共子结构(有效化查询 selectivity)
将所有的查询图结构合并
剪枝策略:
a 除去所有非公共谓词
b 对剩余图中的谓词结点的边取布尔交
将孤立结点放入集合T 其他结点进行连接后放入集合T
选取集合T中sel最低的结构作为公共结构
对查询簇进行重写为带OPTIONAL的查询
C 有效度的计算/查询过程的开销(第一步实现)
sel(t) = sel(s) × sel(p) × sel(o)
sel(s) = 1/R(估计值)
sel(p) = Tp/T(准确值 gStore系统中可以拿到)
PtoO可以实现
以上公式均为SPO为确定值时的公式,若为不确定值记为1.
D 带OPTIONAL查询结果的分发(第一步实现)
gStore能够实现对带OPTIONAL结构的查询
用查询结果对每一个原查询Qi所要求的属性进行布尔交,输出非空结果
最终能够实现对结果的分发,以及对空结果的剔除
E 不使用带OPTIONAL查询(第三步实现)
出于以下几个问题,考虑自己进行优化
1 对数据库进行实际操作时,带OPTIONAL查询的结果集中空结果的数量可能比较多
2 上述对结果进行分发的操作需要进行M次(M为查询集中查询的数量)对结果集的偏离,这部分开销可能比较大
3 只能进行一组单查询到带OPTIONAL查询的重写,如果原查询本身就带有OPTIONAL就比较难处理
考虑在对查询重写完之后,先对公共结构进行一次查询,缩小查询候选集。再分别对每一个查询的OPTIONAL里的部分分别进行查询。这样能够有效避免空结果的产生,而且不需要进行结果的分发。
问题:
当公共结构出现在两个OPTIOAL结构内的情况下,如何进行MQO?
如何在进行完对I/O流的k-means聚簇之后,建立适当的开销估计模型来剔除不适合进行MQO优化的查询?
0 条评论
下一页