橫向分表是按行分表.假設(shè)我們有一張用戶(hù)表,主鍵是自增ID且同時(shí)是用戶(hù)的ID.數(shù)據(jù)量較大,有1億多條,那么此時(shí)放在一張表里的查詢(xún)效果就不太理想.我們可以根據(jù)主鍵ID進(jìn)行分表,無(wú)論是按尾號(hào)分,或者按ID的區(qū)間分都是可以的.
假設(shè)按照尾號(hào)0-99分為100個(gè)表,那么每張表中的數(shù)據(jù)就僅有100w.這時(shí)的查詢(xún)效率無(wú)疑是可以滿(mǎn)足要求的. 縱向分表是按列分表.
假設(shè)我們現(xiàn)在有一張文章表.
包含字段 id-摘要-內(nèi)容 .而系統(tǒng)中的展示形式是刷新出一個(gè)列表,列表中僅包含標(biāo)題和摘要,當(dāng)用戶(hù)點(diǎn)擊某篇文章進(jìn)入詳情時(shí)才需要正文內(nèi)容.
此時(shí),如果數(shù)據(jù)量大,將內(nèi)容這個(gè)很大且不經(jīng)常使用的列放在一起會(huì)拖慢原表的查詢(xún)速度.我們可以將上面的表分為兩張.
id-摘要 , id-內(nèi)容 .當(dāng)用戶(hù)點(diǎn)擊詳情,那主 鍵再來(lái)取一次內(nèi)容即可.
而增加的存儲(chǔ)量只是很小的主鍵字段.代價(jià)很小.當(dāng)然,分表其實(shí)和業(yè)務(wù)的關(guān)聯(lián)度很高,在分表之前一定要做好調(diào)研以及benchmark.不要按照自己的猜想盲目操作