OceanBase对于sum(col1) where col2=xxx这种形式,即使走全表扫描也是特别快(比传统数据库感觉快很多),是不是因为行列混存的优势,微块在磁盘上读取到kvcache是进行解压缩,上面这个sum只需要读取这两列数据就可以了,避免了整行扫描,所以速度快,是这样子么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
OceanBase的行列混存技术可以有效地提高查询性能,简单来说呢它可以将行数据和列数据分别存储在不同的缓存中,从而减少了数据的读取量,从而提高了查询性能。OceanBase还支持微块在磁盘上的解压缩,这样可以减少磁盘IO,进一步提高查询性能。
如果是这个提升的速度,那么解码是在哪个阶段呢?我理解读到内存时候就解码,避免多个查询重复解码。但是看文档中写的是读取到某一行时候再解码,感觉像是线程去kvcache中获取数据时候还没解码,所以不知道这个解码过程发生在哪里。——该回答整理自钉群“[社区]技术答疑群OceanBase”