CouchDB採用a cool pattern,可用於多種其他場景。我正在談論map/reduce結果的持久B-樹索引。這個想法是預先計算彙總數據並將其存儲在B樹索引的不同級別。然後可以使用索引高效地查詢聚合,而不必總是重新聚集所有數據。然後,如果任何葉級值發生變化,只有通過樹的上升路徑必須重新計算。CouchDB用於索引彙總數據的通用名稱
例如,如果數據是隨時間推移的價格,那麼索引可以在日,月和年級別存儲項目的SUM和COUNT。然後,如果任何人想要查詢年初至今的平均價格,則所有必須做的事項是總結自年度開始以來所有整個月份的所有SUM和COUNT以及上個月的所有可用日期,然後將總和SUM總計COUNT。如果過去的價格必須改變,則變化必須通過指數傳播,但只有相應的日,月和年的價值才需要更新,即使如此,其他日期和其他月份的價值也可以重新用於計算。
這種方法的通用名稱是什麼?在任何流行的RDBMS中是否存在類似的東西?在實踐中使用它的任何經驗?