分庫分表

前言:

當(dāng)數(shù)據(jù)庫表中的數(shù)據(jù)過大時(shí),查詢速度變慢,會影響整個(gè)業(yè)務(wù)模塊的性能。

解決方案:

首先考慮:緩存、加索引、優(yōu)化sql語句。若數(shù)據(jù)量極大,且持續(xù)增長可考慮水平分表、水平分庫。

與水平分庫、水平分表對應(yīng)的還有,垂直分庫、垂直分表。垂直分庫、垂直分表一般來說在系統(tǒng)設(shè)計(jì)階段的時(shí)候根據(jù)業(yè)務(wù)情況來確定如何分。

相關(guān)概念:

垂直分表:把一個(gè)表中的字段,按訪問頻次、是否是大字段的原則拆分多個(gè)表。(注意:拆分后,盡量從業(yè)務(wù)角度方面避免聯(lián)合查詢,否則性能方面得不償失)

垂直分庫:把多個(gè)表按業(yè)務(wù)耦合松緊,分別存放在不同的庫,這些庫可以分布在不同的服務(wù)器上。

水平分表:把一個(gè)表中的數(shù)據(jù)分?jǐn)偟酵瑤煜嗤Y(jié)構(gòu)的表中。

水平分庫:把一個(gè)表中的數(shù)據(jù)分?jǐn)偟讲煌瑤煜嗤Y(jié)構(gòu)的表中。

其它方案:

系統(tǒng)業(yè)務(wù)的基礎(chǔ)數(shù)據(jù)和該業(yè)務(wù)的不同維度的查詢數(shù)據(jù)分開,基礎(chǔ)數(shù)據(jù)保證核心功能正常運(yùn)轉(zhuǎn)。查詢所需數(shù)據(jù)可用定時(shí)任務(wù)從基礎(chǔ)數(shù)據(jù)中收集出來。

不同方案帶來的性能提升不同,可按實(shí)際情況而定。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容