[color=red]他们的主要区别:[/color]
[color=blue]•流查询步骤只能进行等值查询[/color],数据库查询步骤可以进行非等值查询
[color=blue]•流查询在查询之前把数据都加载到内存里,数据库查询可以选择是否把数据加载到内存。[/color]
•进行等值查询时,数据库查询步骤如果选中了全部缓存,性能接近但仍不如流查询的性能。
•进行等值查询时,数据库查询步骤如果没选中全部缓存,性能较低,每次查询都要向数据库发送一个SQL 查询请求。
[color=red]•进行非等值查询时,数据库查询即使选中了全部缓存,性能也较低,没有索引在内存中通过循环查询。[/color]
•数据库查询的缓存适用于多次查询返回同一个查询结果的情况(集中式),[color=red]多次查询返回不同查询结果(分散式),使用缓存反而会降低性能。[/color]
使用场景:
[color=red]•非等值查询:数据库查询[/color]
[color=red]•中小数据量的等值查询:流查询[/color]
•大数据量的等值集中式查询:数据库查询(使用缓存)
[color=blue]•大数据量的等值分散式查询:数据库查询(不使用缓存)[/color]
[size=medium][color=red]Merge Join[/color][/size]
Merge Join是高级版的流查询,也就是说可以根据不同表的主键进行内连接或者是外连接。
[img]http://dl2.iteye.com/upload/attachment/0114/7117/61f54616-07e1-391e-a5e6-7b76060ca885.png[/img]
[color=blue]•流查询步骤只能进行等值查询[/color],数据库查询步骤可以进行非等值查询
[color=blue]•流查询在查询之前把数据都加载到内存里,数据库查询可以选择是否把数据加载到内存。[/color]
•进行等值查询时,数据库查询步骤如果选中了全部缓存,性能接近但仍不如流查询的性能。
•进行等值查询时,数据库查询步骤如果没选中全部缓存,性能较低,每次查询都要向数据库发送一个SQL 查询请求。
[color=red]•进行非等值查询时,数据库查询即使选中了全部缓存,性能也较低,没有索引在内存中通过循环查询。[/color]
•数据库查询的缓存适用于多次查询返回同一个查询结果的情况(集中式),[color=red]多次查询返回不同查询结果(分散式),使用缓存反而会降低性能。[/color]
使用场景:
[color=red]•非等值查询:数据库查询[/color]
[color=red]•中小数据量的等值查询:流查询[/color]
•大数据量的等值集中式查询:数据库查询(使用缓存)
[color=blue]•大数据量的等值分散式查询:数据库查询(不使用缓存)[/color]
[size=medium][color=red]Merge Join[/color][/size]
Merge Join是高级版的流查询,也就是说可以根据不同表的主键进行内连接或者是外连接。
[img]http://dl2.iteye.com/upload/attachment/0114/7117/61f54616-07e1-391e-a5e6-7b76060ca885.png[/img]