Kettle 流查询,数据库查询和Merge Join的区别

来源:互联网 发布:中国gis软件 编辑:程序博客网 时间:2024/05/29 13:23
他们的主要区别:

  •流查询步骤只能进行等值查询,数据库查询步骤可以进行非等值查询

  •流查询在查询之前把数据都加载到内存里,数据库查询可以选择是否把数据加载到内存。
  •进行等值查询时,数据库查询步骤如果选中了全部缓存,性能接近但仍不如流查询的性能。
  •进行等值查询时,数据库查询步骤如果没选中全部缓存,性能较低,每次查询都要向数据库发送一个SQL 查询请求。
  •进行非等值查询时,数据库查询即使选中了全部缓存,性能也较低,没有索引在内存中通过循环查询。
  •数据库查询的缓存适用于多次查询返回同一个查询结果的情况(集中式),多次查询返回不同查询结果(分散式),使用缓存反而会降低性能。



使用场景:

  •非等值查询:数据库查询

  •中小数据量的等值查询:流查询
  •大数据量的等值集中式查询:数据库查询(使用缓存)
  •大数据量的等值分散式查询:数据库查询(不使用缓存)

Merge Join

Merge Join是高级版的流查询,也就是说可以根据不同表的主键进行内连接或者是外连接。