Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Performance

Amazon Redshift 通过使用这些性能功能来实现极快的查询执行:

  • 大规模并行处理

  • 列式数据存储

  • 数据压缩

  • 查询优化

  • 编译后的代码

大规模并行处理

大规模并行处理 (MPP) 支持对大量数据快速执行最复杂的查询。多个计算节点处理所有查询处理以获得最终结果聚合,执行相同的编译后查询的每个节点的每个核心在整个数据的各个部分进行分段。

Amazon Redshift 将表行分配给计算节点,以便能并行处理数据。通过为每个表选择相应的分配键,可以优化数据分配以均衡工作负载,并最大程度地减少节点间的数据移动。有关更多信息,请参阅 选择最佳分配方式

加载平面文件中的数据时将利用并行处理,方式是跨多个节点分配工作负载,同时从多个文件进行读取。有关如何将数据加载到表的更多信息,请参阅加载数据的最佳实践

列式数据存储

数据库表的列式存储大大降低了总体磁盘 I/O 要求,它是优化分析查询性能的一个重要因素。按列式方式存储数据库表信息将减少磁盘 I/O 请求数与需从磁盘加载的数据量。减少加载到内存中的数据量使 Amazon Redshift 能够在执行查询时执行更多的内存中处理。有关更详细的说明,请参阅 列式存储

在适当地对列进行排序时,查询处理器能够快速筛选出大型数据块子集。有关更多信息,请参阅 选择最佳排序键

数据压缩

数据压缩将降低存储要求,从而减少磁盘 I/O 来提高查询性能。在执行查询时,压缩的数据将读入内存,然后在查询执行期间解压缩。将少量数据加载到内存中使 Amazon Redshift 能够分配更多内存来分析数据。由于列式存储将按顺序存储类似数据,因此 Amazon Redshift 能够应用与列式数据类型关联的自适应压缩编码。对表列启用数据压缩的最佳方式是,允许 Amazon Redshift 在您将表与数据一起加载时应用最优压缩编码。要了解有关使用自动数据压缩的更多信息,请参阅使用自动压缩加载表

查询优化程序

Amazon Redshift 查询执行引擎集成了 MPP 感知的查询优化程序并采用了面向列式的数据存储。Amazon Redshift 查询优化程序实施大量增强和扩展以便处理通常包含多表联接、子查询和聚合的复杂的分析查询。要了解有关优化查询的更多信息,请参阅优化查询性能

编译后的代码

领导节点跨群集的所有节点分发完全优化的编译后的代码。编译查询将消除与解释器关联的开销,从而加快执行速度,特别是加快复杂查询的执行速度。编译后的代码将跨同一个群集中的多个会话进行缓存和共享,因此同一查询的后续执行的速度将更快,通常甚至会使用不同的参数。

执行引擎为 JDBC 连接协议以及 ODBC 和 psql (libq) 连接协议编译不同的代码,使用不同协议的两个客户端均将产生编译代码的首次成本。不过,使用相同协议的其他客户端将从共享缓存代码中获益。