日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 為什么MySQL數據庫數據量大了要進行分庫分表?

為什么MySQL數據庫數據量大了要進行分庫分表?

來源:千鋒教育
發布人:xqq
時間: 2023-10-12 22:50:46 1697122246

一、為什么MySQL數據庫數據量大了要進行分庫分表

隨著用戶量的激增和時間的堆砌,存在數據庫里面的數據越來越多,此時的數據庫就會產生瓶頸,出現資源報警、查詢慢等場景。

首先單機數據庫所能承載的連接數、I/O及網絡的吞吐等都是有限的,所以當并發量上來了之后,數據庫就漸漸頂不住了。

再則,如果單表的數據量過大,查詢的性能也會下降。因為數據越多 B+ 樹就越高,樹越高則查詢 I/O 的次數就越多,那么性能也就越差。

因為上述的原因,不得已就得上分庫分表了。

把以前存在一個數據庫實例里的數據拆分成多個數據庫實例,部署在不同的服務器中,這是分庫。

把以前存在一張表里面的數據拆分成多張表,這是分表。

一般而言:

分表:是為了解決由于單張表數據量多大,而導致查詢慢的問題。大致三、四千萬行數據就得拆分,不過具體還是得看每一行的數據量大小,有些字段都很小的可能支持更多行數,有些字段大的可能一千萬就頂不住了。分庫:是為了解決服務器資源受單機限制,頂不住高并發訪問的問題,把請求分配到多臺服務器上,降低服務器壓力。

延伸閱讀:

二、主要的單機存儲引擎

1、哈希存儲:hash的CRUD是非常快的。但缺點是不支持順序掃描。bitcask是一個基于hash表結構的存儲系統。他將寫操作(包括刪除標識)追加到文件尾。并定期合并新老文件&記錄。

2、B樹:既支持隨機讀取又支持范圍查找的系統。查找時間復雜度為logd(n)(d為每個節點的出度)。Mysql的InnoDB的引擎和OS的文件系統使用的就是B+樹。(為什么選擇使用B樹的變種B+樹,讀者有興趣可以去探究下。提示:磁盤讀取)

3、LSM樹(Log Structured Merge Tree):由B+數改進而來。其思想為:將增量寫操作保存在內存中,超過閾值時刷入磁盤,從而減少隨機寫磁盤操作。讀操作則需要合并磁盤數據和內存中的寫操作。通過Memtable/SSTable實現,實現細節在此不做深入探究。比較適合寫操作較多的業務場景。BigTable/HBase/Cassandra中的列簇的數據存儲方式采用的即是LSM樹。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 东平县| 昌黎县| 榆树市| 利川市| 固安县| 呼伦贝尔市| 沿河| 佛教| 丘北县| 菏泽市| 丰台区| 铁岭县| 阳泉市| 井研县| 泰来县| 梓潼县| 松潘县| 镇宁| 乌兰县| 会宁县| 兴和县| 新蔡县| 松溪县| 绥宁县| 铜陵市| 玉屏| 福泉市| 乐平市| 沈阳市| 旺苍县| 洞头县| 邯郸市| 太康县| 盐亭县| 博湖县| 兰西县| 富阳市| 岳阳县| 桓台县| 日照市| 抚松县|