您现在的位置是:首页 > 文章详情

《NoSQL权威指南》——2.3 查询优化

日期:2017-05-01点击:436

本节书摘来自异步社区出版社《NoSQL权威指南》一书中的第2章,第2.3节,作者:【美】Joe Celko(乔•塞科) ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 查询优化

有些列式数据库使用基于行的优化器,抵消了列式存储很多的优势。它们在具体化“行”之前在查询执行时使用基于行的优化器进行优化处理(只组装查询的列,实际上是做选择和投影)。基于列的优化可以将选择和投影分为单独的操作,这是MapReduce算法的一个版本(这些算法稍后会加以解释)。

目标是在查找实际的数据值前,获取尽可能多的行数。如果你能并行地收集列会更好。很显然,因为列中的数据已经完成,映射将首先开始。但选择操作需要尽快执行。

请注意,我刚才提到来自一个域的列。大多数实际数据库中完成的联结是等值联结,这意味着在不同表中的列都是来自同一个域,并且匹配相同的值。特别是,PRIMARY KEY及其引用FOREIGN KEY都必须在同一个域中。PRIMARY KEY列包含表的唯一值,而FOREIGN KEY可能是一对多的。

我们可以在列描述符中添加表的名字,使之成为域描述符:{table_name, start_position, end_position, data_value}。该载体可以是相当紧凑的,一个模式很少有200多万张可以用简单的整数进行建模的表。这种结构使某些连接操作转换为单域结构扫描。索引可以定位域描述符中的每个表的开始,并行访问相关的表。

原文链接:https://yq.aliyun.com/articles/96567
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章