背景
查找一個結果需要從多張表,多個數據庫中查找,再組裝之後返回前端。
後端來操作:
增加緩存
- 數據庫增加索引
- 將數據庫中經常要查,而且不常變的東西存入本地變量
- 或者引入redis,存進redis
- 如果數據不是經常變動的內容,只是存在各個不同的庫。可以把查詢後組裝好的結果存入數據庫(創建緩存)。每次查詢先訪問該數據庫,如果有結果則返回,沒有結果則按原有邏輯進行,將結果存入該庫。
引入的新問題:髒數據
- 如果這些數據更改了,如果這些更改也是你可以控制的,在更改後增量更新該數據庫。
- 如果這些更改你不能感知或者控制。可以
1. 定時任務(比如一小時全量刷新一次,一天全量刷新一次)
2. 前端留給用戶一個按鈕,如果用戶感覺數據有問題,可以強制刷新
前後端共同操作:
更改查詢邏輯,將一個查詢接口分成多個接口。類似分頁的邏輯。總時間不變,甚至稍微邊長。但是每個接口響應速度快,可以懶加載,或者用戶點擊再加載。