从2023数据技术嘉年看行业数据库的执行引擎

简介: 从2023数据技术嘉年看行业数据库的执行引擎

2023年4月7-8日,数据技术嘉年华给我们带了一场数据库行业盛宴。重点关注下向量化引擎的技术实现原理和创新应用点。1、MogDB基于openGauss内核在Copy导入优化方面使用了SIMD指令并行解析,能够提高导入性能10%-20%。SIMD指令优化方面同样可以用到分析型数据库中,比如向量化执行引擎。openGauss本身已实现向量化执行引擎,将执行器以行执行的模式改造成了以batch执行的批量模式。但本身并没有利用SIMD指令进行深度优化。 

2GoldenDB由金融TP型数据库发展到了HTAP数据库,增加了行列混合存储特性,以及向量计算,利用CPU指令集进行优化。可惜没有开源,不知道具体如何实现的列存及如何向量计算并利用CPU指令进行的优化。 

3、oceanbase增加了行列混合存储,表格分成多个Row Group,行组内按列存储,在这个基础上增加了向量化执行引擎。利用SIMD指令进行了深度优化。Oceanbase代码已开源,可以从GitHub上下载学习如何利用SIMD指令深度优化:github.com/oceanbase/oceanbase 

 4TDSQL同样设计了向量化执行引擎。应该没有实现深度SIMD优化。 

5、基于GreenPlum而来的YMatrix,自研开发了mars2存储引擎,增加了minmax等统计信息。可以通过minmax来过滤数据块,仅加载满足条件的值所在的块,大大减少了顺序扫描行数及IO。同时支持全面向量化,充分利用SIMD指令进行优化,据说基本支持了全部的算子。向量化加速100倍以上,这个就很强大了。可惜,Ymatrix不开源。 

 

从大会上看,基本上向量化执行引擎成为了分析型数据库的标配,并且在SIMD指令层进行并行执行。有开源也有商业版的。另外在这方面做的比较牛的还有ClickHouseStarRocksDorisDB等。惊喜的是,这些数据库都是开源的,可以从代码中了解向量化执行引擎以及SIMD优化的机制原理。

目录
相关文章
|
1天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
15 6
|
4天前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
17 0
|
6天前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
17 0
|
8天前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
18 0
|
11天前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
26 0
|
11天前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
21 0
|
11天前
|
开发者 UED Java
Play Framework惊天秘密:如何让异常处理优雅得像芭蕾舞?
【8月更文挑战第31天】在Web应用开发中,异常处理至关重要,直接影响应用稳定性和用户体验。Play Framework作为轻量级Java Web框架,提供了基于Scala偏函数的灵活异常处理机制。通过实现`HttpErrorHandler`接口可定义全局异常逻辑,而在控制器中使用try-catch块则能捕获特定异常。定义自定义异常类也有助于表示特定错误情况。最佳实践包括保持处理一致性、提供有用错误信息、记录日志及分类处理异常。掌握这些技巧,能使Play应用更健壮可靠。
28 0
|
11天前
|
存储 SQL 数据库
|
21天前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
90 2