SQL面试题更新 2026-08-05

请说明Spark SQL中采用列式存储格式(例如Parquet)提升查询性能的具体机制。

数据性能优化技术原理Spark SQL

考察说明

考查对列式存储与行式存储差异及其对查询性能影响的理解。

回答思路

  1. 【回答框架 1】列式存储按列连续存放数据,同一列的数据类型相同,便于压缩,显著减少I/O和存储空间。
  2. 【回答框架 2】查询时只需读取涉及的列,跳过无关列,降低数据扫描量,尤其适合分析型查询。
  3. 【回答框架 3】列式存储配合谓词下推和列剪枝,进一步减少数据读取,提升查询效率。
  4. 【回答框架 4】Parquet还支持向量化读取和SIMD优化,加速数据处理。
  5. 【回答框架 5】注意列式存储对点查询和频繁更新场景不占优势,行式存储更适合。
  6. 【关键点 1】列式存储减少I/O和存储,提升压缩比。
  7. 【关键点 2】仅读取查询所需列,减少数据扫描。
  8. 【关键点 3】支持谓词下推,跳过无关数据。
  9. 【关键点 4】适合分析型负载,不适合频繁更新或点查询。
  10. 【易错点 1】不能简单断言列式存储对所有查询都更快,需考虑查询模式和数据分布。
  11. 【易错点 2】列式存储对写入和更新不友好,不适合OLTP场景。
  12. 【易错点 3】Parquet压缩和解压有CPU开销,需要权衡。