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