更新時間:2023-03-09 來源:黑馬程序員 瀏覽量:
分庫分表的優(yōu)點非常明顯,如:將大表拆分成小表,單表數(shù)據(jù)量控制在 5000 萬行以內(nèi),使 MySQL 性能穩(wěn)定可控。將單張大表拆分成小表后,能水平擴展,通過部署到多臺服務(wù)器,提升整個集群的 QPS、TPS、Latency 等數(shù)據(jù)庫服務(wù)指標。
但是,此方案的缺點也非常明顯:
分表跨實例后,產(chǎn)生分布式事務(wù)管理難題,一旦數(shù)據(jù)庫服務(wù)器宕機,有事務(wù)不一致風(fēng)險。
分表后,對 SQL 語句有一定限制,對業(yè)務(wù)方功能需求大打折扣。尤其對于實時報表統(tǒng)計類需求,限制非常之大。事實上,報表大多都是提供給高層領(lǐng)導(dǎo)使用的,其重要性不言而喻。
分表后,需要維護的對象呈指數(shù)增長(MySQL實例數(shù)、需要執(zhí)行的 SQL 變更數(shù)量等)。