国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

玩原神學編程-數(shù)據(jù)庫分庫分表是啥?讀擴散又是啥?

2023-08-04 02:23 作者:星痕_MeteorV  | 我要投稿
  • 如果我們不分表,那表就會很大,很長,分布在硬碟的各個地方,讀取 I/O 就會變多
  • 所以要垂直分表或是水評分表
  • 垂直分表 : 直接把幾個 column 抓出去。而可以減輕壓力的原因是 column 變小了。 B+ 樹儲存的話,數(shù)據(jù)其實都放在 “數(shù)據(jù)頁” 裡面,例如大小 16K。 但是 column 很多的話 row 就會相對小。這樣都在同個數(shù)據(jù)頁就能找到(涵蓋)的話就不用這整個 16K 找完還得往下一個 16K 去找。
  • 水平分表 : 就是切 row,一般一個單位是 500w~2000w。
  • 最常見的是取 mod,難點在如果想擴充就得做 migration 然後頭疼。
  • 若我們用 range 去分表,例如第一張放 [1~2kw), 第二張放 [2kw~4kw) 這樣就能無限擴充了。 但這樣如果剛好某一個 range 的資料被頻繁讀寫,那就會有 Read/Write Hotspot 問題。 (例如剛好 2023 註冊的玩家特別活躍)
  • 解決熱點問題最簡單方案就是產(chǎn) ID 的時候隨機。
  • 另一種解決熱點問題的方式是上層用 range 分表,然後底下再用 mod 分表 例如 3kw 先到第二張,然後再取 mod 來到更小的表查詢。 這樣可以從讀寫單表變成讀寫多表。
  • “沒有什麼是加中間層不能解決的,如果有,那就再加一層” 至於中間層的實現(xiàn)方式,可以用 orm,也可以用 proxy 去做中間層分表路由邏輯
  • 讀擴散問題 : 如果我想查詢一個非主鍵的資料,而因為分表的關(guān)係我得同時查可能 200 張表。(因為它不像是 ID 我可以直接知道 range 在哪就去 access 哪張表)
  • 一種解法是建一個分片表,然後把那個普通的 column 當做一個 key,然後 id 變成 data。有點像倒排索引。缺點是你得維護兩張表而且更改的時候要同時更改。
  • 點讚破 500 了我還是沒看到 up 的解答,救。 我自己是想那就建一個新的 pk 吧。


玩原神學編程-數(shù)據(jù)庫分庫分表是啥?讀擴散又是啥?的評論 (共 條)

分享到微博請遵守國家法律
福贡县| 罗平县| 淮阳县| 张家川| 防城港市| 瓮安县| 蓝田县| 子长县| 师宗县| 永丰县| 福建省| 定陶县| 资溪县| 沾化县| 洮南市| 望都县| 黎平县| 清远市| 安吉县| 巴里| 定安县| 汤阴县| 敖汉旗| 绥德县| 礼泉县| 天门市| 渑池县| 惠东县| 淳安县| 正宁县| 漯河市| 马尔康县| 南康市| 宽城| 韶关市| 鄂温| 苗栗县| 沂水县| 德令哈市| 娄底市| 华亭县|