快取查詢結果
如果您的問題結果不常變更,您可能希望儲存結果,以便下次有人瀏覽該問題時,Metabase 可以檢索快取的結果,而無需再次查詢資料庫。
例如,如果您的資料每天僅更新一次,則每天查詢資料庫超過一次是沒有意義的,因為資料不會變更。傳回快取的結果可能會顯著加快速度,因為您的資料庫不必重新計算結果來載入您的問題。
Metabase 中的快取運作方式
假設您為特定問題設定了快取原則。您設定了持續時間原則,該原則表示在一小時後使結果失效(並清除快取)。
當您第一次檢視問題時,Metabase 將檢查是否有儲存的結果。當找不到任何結果時,它將查詢您的資料庫、傳回結果並儲存(快取)結果。這些結果在接下來的一小時內仍然有效(根據您設定的一小時持續時間原則)。
如果您在半小時後再次執行該問題,Metabase 將傳回這些儲存的結果。
如果您在初始執行後超過一小時再次執行該問題,Metabase 將注意到儲存的結果已超過您的快取原則允許的時間。Metabase 將刪除儲存的結果,對您的資料庫執行查詢,傳回結果,並儲存它們以供將來的查詢使用。根據您設定的持續時間原則,此快取在接下來的一小時內仍然有效。若要在結果過期時始終重新整理快取,請參閱自動重新整理快取。
請參閱不同快取原則如何互動。
快取失效原則
這些原則決定快取的結果將保持有效多久。
持續時間快取原則
持續時間快取原則僅適用於 Pro 和 Enterprise 方案(包括自架託管和 Metabase Cloud)。
在一定的小時數後使快取失效並清除快取。當有人執行查詢時,Metabase 將首先檢查它是否已快取結果,以及這些結果是否仍然有效。如果沒有,Metabase 會對資料庫執行查詢並快取結果。這些快取的結果將在您設定的持續時間內保持有效。
排程快取原則
排程快取原則僅適用於 Pro 和 Enterprise 方案(包括自架託管和 Metabase Cloud)。
選擇何時定期使快取失效。Metabase 僅在人們執行查詢時儲存結果,並將根據您在此處設定的排程清除快取的結果。
您可以排程快取失效
- 每小時
- 每日
- 每週
- 每月
我們尚不支援陰曆週期。
自適應快取原則
使用查詢的平均執行時間來決定快取查詢結果的時間長度。
- 最短查詢持續時間:如果此問題的平均查詢執行時間超過此秒數,Metabase 將快取此問題。
- 乘數:若要決定每個快取的結果應保留多久,我們採用該查詢的平均執行時間,並將其乘以您在此處輸入的數字。結果是快取應保持有效的秒數。例如,如果一個問題平均需要 10 秒才能傳回結果,而您設定的乘數為 100,則 Metabase 將儲存快取 10 x 100 秒:1,000 秒(約 16 分鐘)。
每當 Metabase 對資料庫執行查詢以重新整理快取的結果時,它都會重新計算查詢的平均執行時間。因此,如果 Metabase 第一次對資料庫執行查詢時需要 5 分鐘才能傳回結果,則平均執行時間將為 5 分鐘。如果下次對資料庫執行查詢需要 7 分鐘才能傳回,Metabase 將更新平均值為 6 分鐘(5 和 7 的平均值為 6)。
在 Pro 和 Enterprise 方案中,您可以在使用量分析集合中檢視查詢和快取統計資訊。
不要快取結果
如果您為問題、儀表板或資料庫選擇「不要快取結果」,Metabase 將不會快取其結果;它將始終對資料庫執行查詢以重新整理結果。
自動重新整理快取
自動重新整理快取僅適用於 Pro 和 Enterprise 方案(包括自架託管和 Metabase Cloud)。
如果您為問題或儀表板開啟自動重新整理快取,Metabase 將在您設定的任何快取原則使快取失效後立即重新執行查詢。通常,Metabase 僅在有人在快取過期後檢視項目時重新整理快取。因此,通常,當快取過期時,下一個檢視問題的人將會卡住等待查詢執行並重新整理快取。但是透過自動重新整理結果以更新快取,載入時間將始終盡可能快,並且人們將始終獲得有效的快取結果。
Metabase 在自動重新整理快取時如何處理參數值
自動重新整理結果時,Metabase 將始終套用預設參數值(如果有的話)。Metabase 也將快取最多十個在上一個快取期間(由您的快取原則定義)套用最頻繁的參數值的結果。如果您的問題或儀表板有多個參數,Metabase 將快取最多十個最常套用的參數值組合。
例如,假設您有一個儀表板,其中包含類別篩選器(預設值:Doohickey
),設定為每 24 小時快取結果。在過去 24 小時內,檢視該儀表板的人員將以下值套用至類別篩選器:Widget
、Gizmo
。當 Metabase 下次重新整理快取時,它將快取三組結果,每組都套用了其中一個參數:Doohickey
(預設值)、Widget
和 Gizmo
。但是,如果沒有人在過去 24 小時內執行查詢,Metabase 將僅重新整理套用預設參數值的結果快取。
自動快取日誌
若要檢視 Metabase 執行以自動重新整理快取的查詢,請查看查詢日誌,並依快取重新整理
篩選 查詢來源
。
設定儀表板、問題和資料庫的快取原則
您可以為不同的實體設定快取原則。
* 表示 Pro 和 Enterprise 功能。
預設快取原則
若要為您的 Metabase 設定預設快取原則:按下 Cmd/Ctrl + k 以開啟命令面板並搜尋 效能。或者,按一下齒輪設定圖示 > 管理設定 > 效能 > 資料庫快取。
按一下預設原則旁邊的按鈕,然後選取快取失效原則。
資料庫快取原則
資料庫快取僅適用於 Pro 和 Enterprise 方案(包括自架託管和 Metabase Cloud)。
與預設快取原則相同,但您可以為特定資料庫設定快取原則。
如果您的資料庫已連線至 Metabase 並設定為使用預設原則,Metabase 將更新顯示畫面以反映預設原則的設定。例如,如果您將預設原則設定為「自適應」,Metabase 將針對設定為「使用預設」的那些資料庫顯示「自適應」作為目前原則。
儀表板快取原則
儀表板快取僅適用於 Pro 和 Enterprise 方案(包括自架託管和 Metabase Cloud)。
若要為儀表板設定快取原則,您必須具有策展存取權才能存取儀表板的集合。
問題快取原則
問題快取僅適用於 Pro 和 Enterprise 方案(包括自架託管和 Metabase Cloud)。
若要為問題設定快取原則,您必須具有策展存取權才能存取問題的集合。
儀表板、問題、資料庫和預設快取原則如何互動
如果多個快取原則影響同一個問題,Metabase 將依此順序使用第一個可用的原則
- 問題
- 儀表板
- 資料庫
- 預設(全站範圍)
問題原則會覆寫儀表板原則,儀表板原則會覆寫資料庫原則,資料庫原則會覆寫預設原則。
清除快取
若要清除快取並重新整理結果
- 問題和儀表板:瀏覽項目,然後按一下資訊 > 快取原則 > 清除快取(「清除快取」按鈕位於側邊欄底部)。
- 資料庫:按一下齒輪圖示,然後按一下管理設定 > 效能 > 資料庫快取。選取您的資料庫,然後按一下清除快取按鈕(位於頁面底部)。
快取位置
如果您是自架託管 Metabase,快取的問題結果將儲存到您的應用程式資料庫。
如果您使用 Metabase Cloud,快取的問題結果將儲存到 Metabase 在美國的伺服器(因為我們的 Cloud 服務為您管理您的應用程式資料庫)。
延伸閱讀
閱讀其他Metabase 版本的文件資料。