他們的主要區別:
•流查詢步驟只能進行等值查詢,數據庫查詢步驟可以進行非等值查詢
•流查詢在查詢之前把數據都加載到內存里,數據庫查詢可以選擇是否把數據加載到內存。
•進行等值查詢時,數據庫查詢步驟如果選中了全部緩存,性能接近但仍不如流查詢的性能。
•進行等值查詢時,數據庫查詢步驟如果沒選中全部緩存,性能較低,每次查詢都要向數據庫發送一個SQL 查詢請求。
•進行非等值查詢時,數據庫查詢即使選中了全部緩存,性能也較低,沒有索引在內存中通過循環查詢。
•數據庫查詢的緩存適用於多次查詢返回同一個查詢結果的情況(集中式),多次查詢返回不同查詢結果(分散式),使用緩存反而會降低性能。
使用場景:
•非等值查詢:數據庫查詢
•中小數據量的等值查詢:流查詢
•大數據量的等值集中式查詢:數據庫查詢(使用緩存)
•大數據量的等值分散式查詢:數據庫查詢(不使用緩存)