KunlunBase查询优化(二)Project和Filter下推
前言
上一篇讲述了KunlunBase的查询优化原理(KunlunBase 查询优化(一)),本篇讲述Project和Filter下推演示。
一、测试表基本信息
select t1.name, t2.shard_id, t2.hostaddr, t2.port,
t2.user_name, t2.passwd from pg_shard t1, pg_shard_node t2
where t2.shard_id=t1.id;
select t1.nspname, t2.relname,t2.relshardid, t2.relkind
from pg_namespace t1 join pg_class t2 ont1.oid = t2.relnamespace
where t2.relshardid != and relkind='r' and relname like
'%customer1%' order by t2.relname;
二、查询过程
explain select c_id,c_first,c_middle from customer1
where c_id=4;
explain select c_id ,c_middle,c_data from customer1
where c_middle='OE';
explain select count(*) from customer1
where sqrt(c_discount)>0.5;
explain select c_id,c_first,c_middle from customer1;
explain selectc_balance + c_ytd_payment from customer1
where c_id =20;
对应用程序透明,即应用程序不需要做任何修改就可以访问数据。
存储节点对数据做读取及投影操作,减少计算节点的负载(更少的CPU 和内存消耗)。
数据分布在不同的存储节点上,方便系统弹性扩展IO 能力及避免IO 的热点竞争。
投影和过滤操作,减少数据块读写范围 ,可以提高查询效率。
三、性能比对
select now(); select count(*) from customer1
where c_id between 4 and 10;select now();
CREATE TABLEcustomer1temp (like customer1);
insert intocustomer1temp select * From customer1
select now(); select count(*) from customer1temp
where c_idbetween 4 and 10 ;select now();
点击阅读原文
推荐阅读
KunlunBase架构介绍
KunlunBase技术优势介绍
KunlunBase技术特点介绍
KunlunBase集群基本概念介绍
END
昆仑数据库是一个HTAP NewSQL分布式数据库管理系统,可以满足用户对海量关系数据的存储管理和利用的全方位需求。
应用开发者和DBA的使用昆仑数据库的体验与单机MySQL和单机PostgreSQL几乎完全相同,因为首先昆仑数据库支持PostgreSQL和MySQL双协议,支持标准SQL:2011的 DML 语法和功能以及PostgreSQL和MySQL对标准 SQL的扩展。同时,昆仑数据库集群支持水平弹性扩容,数据自动拆分,分布式事务处理和分布式查询处理,健壮的容错容灾能力,完善直观的监测分析告警能力,集群数据备份和恢复等 常用的DBA 数据管理和操作。所有这些功能无需任何应用系统侧的编码工作,也无需DBA人工介入,不停服不影响业务正常运行。
昆仑数据库具备全面的OLAP 数据分析能力,通过了TPC-H和TPC-DS标准测试集,可以实时分析新的业务数据,帮助用户发掘出数据的价值。昆仑数据库支持公有云和私有云环境的部署,可以与docker,k8s等云基础设施无缝协作,可以轻松搭建云数据库服务。
请访问 http://www.kunlunbase.com/ 获取更多信息并且下载昆仑数据库软件、文档和资料。
KunlunBase项目已开源
【GitHub:】
https://github.com/zettadb
【Gitee:】
https://gitee.com/zettadb
相关文章