欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

數(shù)據(jù)庫如何實施垂直拆分,原理是啥?

admin
2025年1月1日 20:38 本文熱度 517
當(dāng)數(shù)據(jù)庫的數(shù)據(jù)量非常大時,水平切分和垂直拆分都降低數(shù)據(jù)量大小,提升數(shù)據(jù)庫性能,有什么差別?


水平切分是指,以某個字段為依據(jù)(例如uid),按照一定規(guī)則(例如取模),將一個庫(表)上的數(shù)據(jù)拆分到多個庫(表)上,以降低單庫(表)大小,達(dá)到提升性能的目的的數(shù)據(jù)庫架構(gòu)設(shè)計方法。


水平切分后,各個庫(表)的特點是:

1. 每個庫(表)的結(jié)構(gòu)都一樣

2. 每個庫(表)的數(shù)據(jù)都不一樣,沒有交集;

3. 所有庫(表)的并集是全量數(shù)據(jù);


垂直拆分是指,將一個屬性較多,一行數(shù)據(jù)較大的表,將不同的屬性拆分到不同的表中,以降低單庫(表)大小,達(dá)到提升性能的數(shù)據(jù)庫架構(gòu)設(shè)計方法。


垂直切分后,各個庫(表)的特點是:

1. 每個庫(表)的結(jié)構(gòu)都不一樣

2. 一般來說,每個庫(表)的屬性至少有一列交集,一般是主鍵;

3. 所有庫(表)的并集是全量數(shù)據(jù);


舉個例子,用戶表:

user(
    uid bigint,
    name varchar(16),
    pass varchar(16),
    age int,
    sex tinyint,
    flag tinyint,
    sign varchar(64),
    intro varchar(256)
…);

垂直拆分之后,可能變成兩個這樣的表:

user_base(
    uid bigint,
    name varchar(16),
    pass varchar(16),
    age int,
    sex tinyint,
    flag tinyint,
…);

user_ext(
    uid bigint,
    sign varchar(64),
    intro varchar(256)
…);


垂直切分的依據(jù)是什么?
當(dāng)一個表屬性很多時,垂直拆分依據(jù)主要有幾點:
1. 將長度較短,訪問頻率較高的屬性盡量放在一個表里,這個表暫且稱為主表;
2. 將字段較長,訪問頻率較低的屬性盡量放在一個表里,這個表暫且稱為擴展表;
3. 經(jīng)常一起訪問的屬性,也可以放在一個表里;

為什么要這么這么拆分?
1. 數(shù)據(jù)庫有自己的緩沖池buffer_pool,會將磁盤上的數(shù)據(jù)load到緩沖池里;
2. 緩沖池物理上以頁page為單位,邏輯上以行row為單位,緩存數(shù)據(jù);

3. 在內(nèi)存有限,緩沖池大小固定的情況下,長度較短的row,能緩存更多數(shù)據(jù);

4. 緩存高頻的列column,能提升緩沖池命中率,減少磁盤IO;


舉個例子:

1. 假設(shè)數(shù)據(jù)庫內(nèi)存buffer為1G,未拆分的user表1行數(shù)據(jù)大小為1k,那么只能緩存100w行數(shù)據(jù);

2. 如果垂直拆分成user_base和user_ext,其中user_base訪問頻率高,1行大小為0.1k,就能緩存1000w行數(shù)據(jù)

此時,訪問磁盤的概率會大大降低,數(shù)據(jù)庫訪問的時延會大大降低,吞吐量會大大增加。

簡單總結(jié):
1. 海量數(shù)據(jù)高并發(fā)的數(shù)據(jù)庫場景,垂直拆分能提升數(shù)據(jù)庫性能;
2. 拆分核心依據(jù)是:將長度較短,訪問頻率較高的屬性盡量放在主表里。

知其然,知其所以然。

思路比結(jié)論更重要。


補充閱讀材料:
《數(shù)據(jù)庫水平切分+垂直拆分簡介
https://www.baeldung.com/cs/databases-horizontal-vertical-partitioning

文章很短,3分鐘搞定。


==全文完==


閱讀原文:原文鏈接


該文章在 2025/1/2 12:21:41 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved