数据库查询知识点汇总 优炫数据库并行查询技术
导读优炫数据库支持并行查询,支持并行顺序扫描、并行索引扫描、并行 index-only 扫描、并行 bitmap heap 扫描,以及并行聚合、多表关联,通过并行顺序扫描和哈希联接的性能提升以及对分区数据的高效扫描,提高并行查询性能,支持执行并行使用的查询语句,为一些数据定义命令增加了并行性,特别是B树索引的创建,可充分发挥软硬件的性能,提升大事务处理效率,我来为大家讲解一下关于数据库查询知识点汇总 优炫数据库并行查询技术?跟着小编一起来看一看吧!
数据库查询知识点汇总 优炫数据库并行查询技术
导读
优炫数据库支持并行查询,支持并行顺序扫描、并行索引扫描、并行 index-only 扫描、并行 bitmap heap 扫描,以及并行聚合、多表关联,通过并行顺序扫描和哈希联接的性能提升以及对分区数据的高效扫描,提高并行查询性能,支持执行并行使用的查询语句,为一些数据定义命令增加了并行性,特别是B树索引的创建,可充分发挥软硬件的性能,提升大事务处理效率。
同时在不影响数据访问前提下,实现数据加载,加载操作支持多CPU并行,保障加载效率最大化,满足企业级应用对查询低时延的要求。
并行查询通过把Join、聚合、排序等操作分解成多个操作实现并行,并行查询带来的速度提升是显著的。很多查询在使用并行查询时比未使用前快了超过两倍,有些查询甚至更多倍。
本期分享我们将为大家介绍优炫数据库并行查询。
并行查询如何工作?
当优化器判断对于某一个特定的查询,并行查询是最快的执行策略时,优化器将创建一个查询计划。该计划包括一个 Gather或者Gather Merge节点。下面是一个简单的例子:
EXPLAIN SELECT * FROM uxbench_accounts WHERE filler LIKE '%x%';
QUERY PLAN
-------------------------------------------------------------------------------------
Gather (cost=1000.00..217018.43 rows=1 width=97)
Workers Planned: 2
-> Parallel Seq Scan on uxbench_accounts (cost=0.00..216018.33 rows=1 width=97)
Filter: (filler ~~ '%x%'::text)
(4 rows)
在所有的情形下,Gather或Gather Merge节点都只有一个子计划,它是将被并行执行的计划的一部分。如果Gather或Gather Merge节点位于计划树的最顶层,那么整个查询将并行执行。如果它位于计划树的其他位置,那么只有查询中在它之下的那一部分会并行执行。在上面的例子中,查询只访问了一个表,因此除Gather节点本身之外只有一个计划节点。
优炫数据库为每个查询产生一个查询计划。选择正确的计划来匹配查询结构和数据的属性,对于好的性能来说是最关键的,因此系统包含了一个复杂的规划器来帮助选择,我们可以使用EXPLAIN命令查看规划器为每个查询生成的查询计划。
值得注意的是,当查询执行期间到达Gather节点时,实现用户会话的进程将会请求和规划器选中的worker数量一样多的后台进程。
何时会用到并行查询?
为了让并行查询计划能够被生成,必须配置好下列设置:
max_parallel_workers_per_gather必须被设置为大于零的值。
这是一种特殊情况,一般的情况下是所用worker数量不能超过max_parallel_workers_per_gather所配置的数量。
如何选择并行扫描的表?
选择并行扫描的表是生成并行计划的重要基础,优炫数据库支持下列可并行扫描的表:
1
在一个并行顺序扫描中,表块将在合作进程之间被划分。一次会分发一个块,这样对表的访问还是保持顺序方式。
2
在一个并行位图堆扫描中,一个进程被选为主进程。这个进程执行对一个或者多个索引的扫描并且构建出一个位图指示需要访问哪些表块。这些表块接着会在合作进程之间划分(和并行顺序扫描中一样)。换句话说,堆扫描以并行方式进行但底层的索引扫描不是并行。
3
在一个并行索引扫描或者并行只用索引的扫描中,合作进程轮流从索引读取数据。当前,并行索引扫描仅有B-树索引支持。每一个进程将认领一个索引块并且扫描和返回该索引块引用的所有元组,其他进程可以同时地从一个不同的索引块返回元组。并行B-树扫描的结果会以每个工作者进程内的顺序返回。
优炫数据库作为一款安全可信企业级数据库产品,在设计和开发并行查询引擎时,我们充分利用现有的技术积累和实现基础,持续打磨与迭代,以保证系统稳定运行和技术革新,满足用户多业务场景的需求。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com