企業(yè)千億級(jí)海量數(shù)據(jù)并發(fā)分庫分表設(shè)計(jì)方法論學(xué)習(xí)筆記

高并發(fā)主鍵設(shè)計(jì)選擇

索引:
  1. 聚簇索引

    1. 數(shù)據(jù)和索引存儲(chǔ)在一起的下面。 key和value一起存在一起复颈。
    2. 數(shù)據(jù)存儲(chǔ)在主鍵索引中。
    3. 數(shù)據(jù)按主鍵順序存儲(chǔ)沥割。
    4. 如何選擇主鍵:自增主鍵 和 隨機(jī)主鍵 UUID耗啦。對(duì)數(shù)據(jù)和存儲(chǔ)的影響來看。 自增主鍵:寫入性能高机杜。
    5. 自增主鍵優(yōu)點(diǎn):數(shù)據(jù)插入順序?yàn)樗饕龜?shù)據(jù)帜讲。寫入性能高。
    6. 隨機(jī)主鍵缺點(diǎn):插入不連續(xù)的主鍵導(dǎo)致page節(jié)點(diǎn)分裂椒拗。數(shù)據(jù)移動(dòng)似将。寫入性能相較于較低。
  2. 二級(jí)索引

    1. 除聚簇索引外的叫二級(jí)索引蚀苛。/ 除主鍵索引以外的玩郊。
    2. 葉子中存儲(chǔ)的的是主鍵值。 通過二級(jí)索引找到主鍵枉阵。通過主鍵回表到聚簇索引找到value译红。
    3. 一次查詢需要走兩遍索引。(性能衰減)
    4. 主鍵大小會(huì)影響所有索引文件的大小兴溜。(邏輯上影響查詢效率)
  3. 聯(lián)合索引

    1. 多個(gè)key組成的索引侦厚。
    2. 最左匹配原則。 (1.如果不是按照最左開始查詢拙徽,無法使用索引刨沦。 2.不能跳過中間列。 3.列表使用范圍查詢膘怕,后面的列不能使用索引想诅。)
    3. 一個(gè)索引只能創(chuàng)建一棵樹。
    4. 第一列排序岛心,第一列相同按第二列排序来破。
  4. 索引使用優(yōu)化分析

    1. 存儲(chǔ)空間
      1. 索引文件大小
      2. 字段大小->頁面節(jié)點(diǎn)個(gè)數(shù)->樹的層數(shù)
    2. 主鍵選擇
      1. 自增主鍵,順序?qū)懭胪牛矢吲墙#榱瞬槐┞缎畔⒉荒苡糜谥麈I查詢,所以每次查詢走二級(jí)索引髓堪。效率較慢)
      2. 隨機(jī)主鍵送朱,結(jié)點(diǎn)分裂娘荡、數(shù)據(jù)移動(dòng)。寫入磁盤利用率低驶沼,每次查詢走二級(jí)查詢炮沐;
      3. 業(yè)務(wù)主鍵:保證遞增且不連續(xù)的情況下。寫入回怜、查詢磁盤利用率都高大年,可以使用唯一索引。雪花算法(毫秒時(shí)間戳+分布式機(jī)器ID+計(jì)數(shù)器)
      4. 聯(lián)合主鍵:影響索引大小鹉戚,不易維護(hù),不建議使用专控。
    3. 聯(lián)合索引使用
      1. 按索引區(qū)分度排序抹凳。
      2. 覆蓋索引。 不回表伦腐,直接取到數(shù)據(jù)赢底。 數(shù)據(jù)和索引存放一起。
      3. 索引下推柏蘑。
    4. 字符串索引
      1. 設(shè)置合理長度幸冻。
      2. 不支持%開頭模糊查詢。
        經(jīng)驗(yàn):
    • 聯(lián)合索引:覆蓋索引由于多列獨(dú)立索引
    • 索引順序:選擇性高的在前面
    • 覆蓋索引:key里面包含要查詢的數(shù)據(jù)
    • 索引排序:索引同時(shí)滿足查詢和排序
    • 數(shù)據(jù)庫字符集使用utf8mb4咳焚;
    • varchar:按照實(shí)際需要分配長度
    • 文本字段建議使用varchar
    • 時(shí)間字段建議使用long (時(shí)間戳)
    • bool字段建議使用tinyint
    • 枚舉字段建議使用tinyint
    • 交易金額建議使用long 小數(shù)點(diǎn)前移乘以單位
    • 禁止使用“%”前導(dǎo)的查詢
    • 禁止在索引列進(jìn)行數(shù)據(jù)運(yùn)算洽损,會(huì)導(dǎo)致索引失效
    • 表必須有主鍵建議使用業(yè)務(wù)主鍵
    • 單表中索引數(shù)量不超過5個(gè)
    • 單個(gè)索引字段數(shù)不超過5個(gè)
    • 字符串索引使用前綴索引,前綴長度不超過10個(gè)字符
    • 是否分表
      • 看一單表不超過1kw
    • 分表方式
      • 取模:存儲(chǔ)均勻&訪問均勻
      • 按時(shí)間:冷熱庫
    • 分庫
      • 按業(yè)務(wù)垂直分
      • 水平拆分多個(gè)庫

分庫分表

  • 垂直拆分
    • 微服務(wù)拆分革半。(業(yè)務(wù)模塊拆碑定,分開庫)
    • 垂直拆表。 將經(jīng)常寫入的列和經(jīng)常查詢的列拆開來又官。
  • 水平拆分
    • 取模 讀寫均勻
    • 時(shí)間戳 按時(shí)間
    • 冷熱庫 按時(shí)間

高并發(fā)場(chǎng)景分庫實(shí)踐落地方案

  • 用戶庫的拆分:選查詢條件最高的那個(gè)延刘。
    • uid(pk),phone(index)1.對(duì)uid取模六敬。2.對(duì)phone做索引map碘赖,回表查uid。
  • 商品庫的拆分
    • pid(pk)外构,uid(index)1.對(duì)商品pid做取模分表普泡。但是要根據(jù)uid查到發(fā)布的商品,需要做分組审编。解決方案:給用戶表生成一個(gè)字段
    • uid 【TS + pubilc + NO + count】
    • PID 【TS + NO + count + public】
    • 使用public來進(jìn)行分表可以讓同一個(gè)用戶的商品分到一個(gè)表中
  • 系統(tǒng)消息庫的拆分
    • 時(shí)效性強(qiáng)劫哼。
    • 冷熱數(shù)據(jù)拆分。 按月份分
  1. 如果少分了庫表怎么辦割笙?
    合理利用主從同步权烧,然后修改業(yè)務(wù)路由眯亦,分片算法,清理舊數(shù)據(jù)般码。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妻率,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子板祝,更是在濱河造成了極大的恐慌宫静,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件券时,死亡現(xiàn)場(chǎng)離奇詭異孤里,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)橘洞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門捌袜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炸枣,你說我怎么就攤上這事虏等。” “怎么了适肠?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵霍衫,是天一觀的道長。 經(jīng)常有香客問我侯养,道長敦跌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任逛揩,我火速辦了婚禮峰髓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘息尺。我一直安慰自己携兵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布搂誉。 她就那樣靜靜地躺著徐紧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炭懊。 梳的紋絲不亂的頭發(fā)上并级,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音侮腹,去河邊找鬼嘲碧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛父阻,可吹牛的內(nèi)容都是我干的愈涩。 我是一名探鬼主播望抽,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼履婉!你這毒婦竟也來了煤篙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤毁腿,失蹤者是張志新(化名)和其女友劉穎辑奈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體已烤,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸠窗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胯究。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稍计。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖唐片,靈堂內(nèi)的尸體忽然破棺而出丙猬,到底是詐尸還是另有隱情涨颜,我是刑警寧澤费韭,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站庭瑰,受9級(jí)特大地震影響星持,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弹灭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一督暂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧穷吮,春花似錦逻翁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驾诈,卻和暖如春缠诅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乍迄。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工管引, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闯两。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓褥伴,卻偏偏與公主長得像谅将,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子噩翠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容