SqlServer千万级以上的数据表查询优化方案《冷热数据库分离》的思路
1.是分庫而不是分表,分表即需要考慮引入分表算法,又影響后續查詢。
2.熱數據只占全部數據的一部分,因此每次優先查詢熱庫,以下情況才查詢冷庫
? --a.當查詢條件未命中(結果集為空)時,查詢冷庫。
? --b.當查詢條件部分命中時,查詢冷庫。
3.為了區分部分命中和全部命中,可以在熱庫中建一張R表存放每次查詢冷庫的查詢條件和查詢結果數量,每次查詢熱庫時,對比相同查詢條件的查詢結果數量是否一致。一致,則本次查詢結束。不一致,則需要到冷庫中進行查詢。
4.更優方案:不一致的情況,只到冷庫中查詢未查到的數據。此時R表需要存放的不僅是查詢結果數量,還有查詢結果的所有主鍵。
5.舉例說明:100條中80條還是熱數據 20條變成了冷數據 其實應該只是對冷數據庫發起這20條數據的請求。此時需要將R表數據拿出來比對,只查一部分冷數據。
6.熱庫=>冷庫 : 查詢和使用熱數據時,將一段時間不再使用的熱數據移到冷庫。
7.冷庫=>熱庫 :查詢冷庫時,將本次查詢的結果移到熱庫,附上最新查詢日期。
8.數據同步(每次查詢進行或達到一定量級進行)
SqlServer千萬級以上的數據表查詢優化方案《冷熱數據庫分離》的思路
標簽:數據表???nbsp???microsoft???soft???條件???sof???數據庫???最新???一段時間???
原文:http://www.cnblogs.com/yahzi001/p/7656661.html
來源:http://www.bubuko.com/infodetail-2347915.html
總結
以上是生活随笔為你收集整理的SqlServer千万级以上的数据表查询优化方案《冷热数据库分离》的思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中首清算是央企吗
- 下一篇: 解决Nginx出现403 forbidd