在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

優化MySQL數據庫中樸實無華的分表和花里胡哨的分庫

5jek_harmonyos ? 來源:CSDN博客 ? 作者:_陳哈哈 ? 2021-08-26 16:33 ? 次閱讀

blog.csdn.net/qq_39390545/article/details/116248222

一、樸實無華的 - 分表

1、垂直分表

2、水平分表

二、花里胡哨的 - 分庫

3、垂直分庫

4、水平分庫

總結

首先我們要知道分庫、分表都是干啥的,本文主角還是我們的MySQL為第一視角。首先從字面意思來看:

分庫:由單個數據庫實例拆分成多個數據庫實例,將數據分布到多個數據庫實例中。

分表:由單張表拆分成多張表,將數據劃分到多張表內。

要知道,對于大型互聯網項目,數據量級可能不是我們能想到的,每日新增數據量過千萬是常有的事兒,想靠單臺MySQL服務器是不現實的。你項羽在牛B,也頂不住四個隊友掛機啊!!項羽:???

隨著業務數據量和網站QPS日益增高,對數據庫壓力也越來越大,單機版數據庫很快會到達存儲和并發瓶頸,就需要做數據庫性能方面的優化,分庫分表采取的是分而治之的策略,分庫目的是減輕單臺MySQL實例存儲壓力及可擴展性,而分表是解決單張表數據過大以后查詢的瓶頸問題,坦白說,這些問題也是所有關系型數據庫的“硬傷”。

今天我們就基于常見分庫、分表的策略方式以及場景,來搞清楚我們到底啥時候用的到。常用策略包括:垂直分表、水平分表、垂直分庫、水平分庫。

一、樸實無華的 - 分表

1、垂直分表

垂直分表,或者叫豎著切表,是不是感受到該策略是以字段為依據的!主要按照字段的活躍性、字段長度,將表中字段拆分到不同的表(主表和擴展表)中。

特點:

每個表的結構都不一樣;

每個表的數據也不一樣,

有一個關聯字段,一般是主鍵或外鍵,用于關聯兄弟表數據;

所有兄弟表的并集是該表的全量數據;

場景 :

有幾個字段屬于熱點字段,更新頻率很高,要把這些字段單獨切到一張表里,不然innodb行鎖很惡心的,鎖死你呀~~如用戶表里的余額字段?不,我的余額就很穩定,一直是0。。

有大字段,如text,存儲壓力很大,畢竟innodb數據和索引是同一個文件;同時,我又喜歡用SELECT *,你懂得,這磁盤IO消耗的,跟玩兒似的,誰都扛不住的。

有明顯的業務區分,或表結構設計時字段冗余;有些小伙伴看到第一點時,就發現陳哈哈是個菜雞,用戶表怎么會有余額字段?明顯有問題啊!趕緊先到評論區噴陳哈哈一波~~然后笑嘻嘻的發現原來是個小尾巴,真不要臉是吧。。是的,因此不同業務我們要把具體字段拆開,這樣才有利于業務后續擴展哦。

2、水平分表

水平分表,也叫“橫著切”。。以行數據為依據進行切分,一般按照某列的自容進行切分。

手機號表,我們可以通過前兩位或前三位進行切分,如131、132、133 → phone_131、phone_132、phone_133,手機號有11位(100億),量大是很正常的事兒,這年頭誰家老頭老太太每個手機呢是吧。這樣切就把一張大表切成了好幾十張小表,數據量不就下來了。有同學就問了那我怎么知道我這手機號查哪個表呢?一看你就沒認真看前兩行標紅的點,為啥標紅嘞?比如我查13100001111,那我截取前三位,動態拼接到查詢的表名上,就行了。

特點:

每個表的結構都一樣;

每個表的數據都不一樣,沒有交集;

所有表的并集是該表的全量數據;

場景 :單表的數據量過大或增長速度很快,已經影響或即將會影響SQL查詢效率,加重了CPU負擔,提前到達瓶頸。記得水平分表越早越好,別問我為什么。。

你要有興趣試一試,就關注我,讓csdn研發同學給我的粉絲們分個表哈哈。。算了,別做夢了,忘了你是個菜狗了么~

二、花里胡哨的 - 分庫

需要你注意的是,傳統的分庫和我們熟悉的集群、主從復制可不是一個事兒;多節點集群是將一個庫復制成N個庫,從而通過讀寫分離實現多個MySQL服務的負載均衡,實際是圍繞一個庫來搞的,這個庫稱為Master主庫。而分庫就不同了,分庫是將這個主庫一分為N,比如一分為二,然后針對這兩個主庫,再配置2N個從庫節點。

3、垂直分庫

縱向切庫,太經典的切分方式,基于表進行切分,通常是把新的業務模塊或集成公共模塊拆分出去,比如我們最熟悉的單點登錄、鑒權模塊。熟悉的味道,記得有一次我把一些沒用的表切到一個性能很好的服務器中,這服務器我專門用來學習,后來也不知被哪個狗腿子告密了~ 我**你個**,有種站出來,你個**東西。

特點:

每個庫的表都不一樣;

表不一樣,數據就更不一樣了~ 沒有任何交集;

每個庫相對獨立,模塊化

場景 :可以抽象出單獨的業務模塊時,可以抽象出公共區時(如字典、公共時間、公共配置等),或者想有一臺屬于自己的服務器時?

4、水平分庫

以行數據為依據,將一個庫中的數據拆分到多個庫中。大型分表體驗一下?坦白說這種策略并不實用,因為會對后臺開發很不友好,有很多坑,不建議采用,理解即可。

特點:

每個庫的結構都一樣;

每個庫的數據都不一樣,沒有交集;

所有庫的并集是全量數據;

場景 :系統絕對并發量上來了,CPU內存壓力大。分表難以根本上解決量的問題,并且還沒有明顯的業務歸屬來垂直分庫,主庫磁盤接近飽和。

總結

本文就到這里,希望你學廢了!其實,在實際工作中,我們在選擇分庫分表策略前,想到的應該是從緩存、讀寫分離、SQL優化等方面,因為這些能夠更直接、代價更小的解決問題。要記住動表就是動根本,你永遠不知道這張表后面會連帶多少歷史遺留問題,如果是個很大型的項目,遇到些問題你就跟經理提議要分庫分表,小心被呼死~

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7231

    瀏覽量

    90616
  • MySQL
    +關注

    關注

    1

    文章

    839

    瀏覽量

    27250

原文標題:老大讓我優化數據庫,我上來就分庫分表。。。

文章出處:【微信號:harmonyos_developer,微信公眾號:harmonyos_developer】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    工業智能網關采集能耗數據對接到MySQL數據庫

    在工業生產中,對能耗數據的有效采集和管理對于企業的能源優化和成本控制至關重要。利用工業智能網關將能耗數據采集并對接到MySQL數據庫,能夠實
    的頭像 發表于 02-26 13:56 ?290次閱讀
    工業智能網關采集能耗<b class='flag-5'>數據</b>對接到<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>

    水電表通過數據采集平臺接入到MySQL數據庫

    數字化、智能化的能耗監測管理系統十有必要。 對此,數之能提供基于數據采集平臺實現水電表接入到MySQL數據庫的解決方案,將用水、用電等能耗數據
    的頭像 發表于 02-26 13:51 ?204次閱讀

    數據庫數據恢復——MySQL數據庫誤刪除表記錄的數據恢復案例

    本地服務器,安裝的windows server操作系統。 操作系統上部署MySQL單實例,引擎類型為innodb,空間類型為獨立空間。該MySQL
    的頭像 發表于 02-22 09:44 ?359次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復——<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>誤刪除表記錄的<b class='flag-5'>數據</b>恢復案例

    或許我們都被分庫約束了思維

    、Polardb、StarDB等等。 國內的項目好像很多都聚焦于分庫的概念,包括很多的數據庫團隊都在嘗試這個概念的落地和沉溺于性能的跑
    的頭像 發表于 02-21 09:51 ?165次閱讀

    從Delphi、C++ Builder和Lazarus連接到MySQL數據庫

    ? 從 Delphi、C++ Builder 和 Lazarus 連接到 MySQL 數據庫 MySQL 數據訪問組件(MyDAC)是一個組件
    的頭像 發表于 01-20 13:47 ?430次閱讀
    從Delphi、C++ Builder和Lazarus連接到<b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數據連接器和數據庫

    和 Linux 的 wheel 包分發。 直接連接 該解決方案使您能夠通過 TCP/IP 建立與 MySQL 或者 MariaDB 數據庫服務器的直接連接,而無需數據庫客戶端。另外
    的頭像 發表于 01-17 12:18 ?314次閱讀
    適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數據</b>連接器和<b class='flag-5'>數據庫</b>

    MySQL數據庫的安裝

    MySQL數據庫的安裝 【一】各種數據庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的頭像 發表于 01-14 11:25 ?364次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數據庫</b>的安裝

    數據庫是哪種數據庫類型?

    數據庫是一種部署在虛擬計算環境數據庫,它融合了云計算的彈性和可擴展性,為用戶提供高效、靈活的數據庫服務。云數據庫主要分為兩大類:關系型
    的頭像 發表于 01-07 10:22 ?314次閱讀

    數據庫數據恢復—Mysql數據庫表記錄丟失的數據恢復流程

    Mysql數據庫故障: Mysql數據庫表記錄丟失。 Mysql數據庫故障表現: 1、
    的頭像 發表于 12-16 11:05 ?413次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—<b class='flag-5'>Mysql</b><b class='flag-5'>數據庫</b>表記錄丟失的<b class='flag-5'>數據</b>恢復流程

    數據庫數據恢復—MYSQL數據庫ibdata1文件損壞的數據恢復案例

    mysql數據庫故障: mysql數據庫文件ibdata1、MYI、MYD損壞。 故障表現:1、數據庫無法進行查詢等操作;2、使用my
    的頭像 發表于 12-09 11:05 ?400次閱讀

    香港云服務器怎么部署MySQL數據庫

    在香港云服務器上部署MySQL數據庫的步驟如下: 步驟 1: 更新軟件包列表 首先,確保軟件包列表是最新的。在終端執行以下命令: sudo apt update 步驟 2: 安裝 MySQL
    的頭像 發表于 11-14 16:15 ?393次閱讀

    MySQL性能優化淺析及線上案例

    手段則會對用戶的使用體驗造成影響,嚴重的則會直接導致訂單、金額直接受損,因而就需要時刻關注數據庫的性能問題。 2、 性能優化的幾個常見措施 數據庫性能優化的常見手段有很多,比如添加索引
    的頭像 發表于 10-22 15:17 ?903次閱讀
    <b class='flag-5'>MySQL</b>性能<b class='flag-5'>優化</b>淺析及線上案例

    華納云:MySQL初始化操作如何創建新的數據庫

    要在MySQL創建一個新的數據庫,可以按照以下步驟進行操作: 登錄到MySQL數據庫管理系統
    的頭像 發表于 09-04 14:30 ?417次閱讀

    軟件系統數據庫分庫設計

    的分布式集群,實現分庫表功能,解決數據庫中海量數據存儲和查詢性能的問題。MyCat 還是一個數據庫的集群中間件,主要實現 RDBMS
    的頭像 發表于 08-22 11:39 ?458次閱讀
    軟件系統<b class='flag-5'>數據庫</b>的<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>設計

    分庫后復雜查詢的應對之道:基于DTS實時性ES寬構建技術實踐

    1 問題域 業務發展的初期,我們的數據庫架構往往是單,外加讀寫分離來快速的支撐業務,隨著用戶量和訂單量的增加,數據庫的計算和存儲往往會成為我們系統的瓶頸,業界的實踐多數采用分而治
    的頭像 發表于 06-25 18:30 ?1110次閱讀
    <b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>后復雜查詢的應對之道:基于DTS實時性ES寬<b class='flag-5'>表</b>構建技術實踐
    主站蜘蛛池模板: 性欧美成人免费观看视 | 亚洲youjizz| 国产精品永久免费 | 特级毛片免费视频播放 | 久久综合婷婷 | 一级特黄特黄xxx视频 | 国产成人影视 | 国模于子涵啪啪大胆 | 亚洲伊人久久大香线蕉影院 | 日韩网| 91一区二区三区四区五区 | 国产精品福利在线观看免费不卡 | 色老头影院| 亚洲精品午夜视频 | 久久夜色撩人精品国产 | 亚洲欧美精品一区二区 | 97影院理论片手机在线观看 | 日本午夜片| 天天插天天插 | 国产成人夜间影院在线观看 | 久草色香蕉 | 热re99久久精品国产99热 | 日韩一级欧美一级在线观看 | 最新人妖shemaletube人妖 最新日本免费一区二区三区中文 | 欧美精品综合一区二区三区 | 亚洲精品久久久久午夜三 | 欧美猛操| 色吧久久| 天天干夜夜操 | 国产热 | 免费特黄视频 | 痴女中文字幕在线视频 | semm亚洲欧美在线高清 | 日韩欧美中文字幕在线播放 | 日本a免费| 日本极度另类网站 | 久热国产精品 | 欧美一级免费看 | 性欧美xx| 日本三级中文字幕 | 李丽莎尤物福利视频 |