您的位置
主页 > 网站技术 > 数据库 > » 正文

开源MySQL高效数据仓库解决方案:Infobright详细介绍(8)

来源: 锦尚中国 点击:

从上面的分析可以知道,Infobright能够很高效地执行一些查询,而且执行的时候where语句的区分度越高越好。where区分度高可以更精确地确认是否是相关DP或者是不相关DP亦或是可以DP,尽可能减少DP的数量、减少解压缩带来的性能损耗。在做条件判断的使用,一般会用到上一章所讲到的Histogram和CMAP,它们能够有效地提高查询性能。多表连接的时候原理也是相似的。先是利用Pack-To-Pack产生join的那两列的DP之间的关系。比如:SELECT MAX(X.D) FROM T JOIN X ON T.B = X.C WHERE T.A > 6。Pack-To-Pack产生T.B和X.C的DP之间的关系矩阵M。假设T.B的第一个DP和X.C的第一个DP之间有元素交叉,那么M[1,1]=1,否则M[1,1]=0。这样就有效地减少了join操作时DP的数量。前面降到了解压缩,顺便提一提DP的压缩。每个DP中的64K个元素被当成是一个序列,其中所有的null的位置都会被单独存储,然后其余的non-null的数据会被压缩。数据的压缩跟数据的类型有关,infobright会根据数据的类型选择压缩算法。infobright会自适应地调节算法的参数以达到最优的压缩比。

Knowledge Grid还是比较复杂的,里面还有很多细节的东西,可以参考官方的白皮书和这篇论文。

comment lookup的使用

前面已经分析了Infobright的构架,简要介绍了Infobright的压缩过程和工作原理。现在来讨论查询优化的问题。

1)配置环境:在Linux下面,Infobright环境的配置可以根据README里的要求,配置brighthouse.ini文件。

2)选取高效的数据类型

Infobright里面支持所有的MySQL原有的数据类型。其中Integer类型比其他数据类型更加高效。尽可能使用以下的数据类型:

效率比较低的、不推荐使用的数据类型有:

Infobright数据类型使用的一些经验和注意点:

3)使用comment lookup




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明