婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL分庫分表與分區的入門指南

MySQL分庫分表與分區的入門指南

熱門標簽:大豐地圖標注app 南太平洋地圖標注 400電話辦理服務價格最實惠 催天下外呼系統 武漢電銷機器人電話 400電話變更申請 呂梁外呼系統 北京金倫外呼系統 html地圖標注并導航

前言

關系型數據庫比較容易成為系統瓶頸,單機存儲容量、連接數、處理能力都有限,當數據量和并發量起來之后,就必須對數據庫進行切分了。

數據切分(sharding)的手段就是分庫分表。分庫分表有兩方面,可能是光分庫不分表,也可能是光分表不分庫。

數據庫分布式的核心內容無非就是數據切分,以及切分后對數據的定位、整合。

為什么要分庫分表

分表

單表數據量太大時,會嚴重影響sql執行的性能。一般單表到達幾百萬的時候,性能就會相對差一些了,這時就得分表了。

分表就是把一個表的數據放到多個表中,然后查詢的時候就查一個表。比如按照項目id來分表:將固定數量的項目數據放在一個表中,這樣就可以控制每個表的數據量在可控的范圍內。

分庫

根據經驗來講,一個庫最多支持到并發2000時就需要擴容了,而且一個健康的單庫并發值最好保持在1000左右。那么你可以將一個庫的數據拆分到多個庫中,訪問的時候就訪問一個庫好了。

這就是所謂的分庫分表,為啥要分庫分表?

  • 提高并發支撐能力
  • 降低磁盤使用率
  • 提高SQL執行性能

如何分庫分表

直接看圖:

對于垂直拆分,建議最好在系統設計之初做好表設計,避免垂直分表。

水平拆分可以按照range來分,或是按照某個字段hash。按照range來分,好處在于擴容簡單,準備好新的表或庫就可以了。但是容易產生熱點問題,實際使用時要結合業務場景來看。按照hash來分,好處在于可以平均分配每個庫或表的請求壓力,缺點是擴容麻煩,之前的數據要rehash,存在一個數據遷移的過程。

分庫分表帶來的問題

分庫分表能有效地緩解單機和單庫帶來的網絡IO、硬件資源、連接數的壓力。但也帶來了一些問題。

  • 事務一致性問題
    通過分布式事務或者保證最終一致性來解決。
  • 跨節點關聯查詢join問題
    全局表、字段冗余、數據組裝、ER分片
  • 跨節點分頁、排序、聚集函數問題
    首先在不同分片節點進行查詢,最后要對結果進行匯總或歸并
  • 全局主鍵避重問題
    各種分布式ID生成算法
  • 數據遷移、擴容問題
    如果是range分片,只需要添加節點就可以進行擴容了。
    如果是hash,一般做法是先讀出歷史數據,然后按指定的分片規則再將數據寫入到各個分片節點中。

數據遷移

數據遷移介紹兩種方案。

一個最low的方案,就是系統停機一段時間,用實現寫好的導數據的工具跑一遍把單獨單表的數據獨出來,寫到分庫分表里面去。

第二個方案聽起來就比較靠譜了,雙寫遷移方案。在線上系統里,之前所有寫數據的地方,增刪改操作,除了對舊庫增刪改,再加上對新庫的增刪改,這就是所謂的雙寫。然后系統部署之后,把方案一里的導數據工具跑起來,讀老庫寫新庫。寫的時候要根據gmt_modified這類字段判斷這條數據最后修改的時間,除非是讀出來新庫沒有,或是比新庫數據新才會寫。簡單來說就是不允許用老數據覆蓋新數據。

寫完一輪之后,有可能還是存在不一致,那么就程序自動新一輪校驗,對比新老庫每個表的每條數據,接著如果有不一樣的,就針對那些不一樣的,從老庫讀數據再次寫。反復循環直到數據完全一致。

中間件

分庫分表的中間件比較常見的有:

  • Cobar:阿里b2b團隊開發和開源的,屬于proxy層方案,介于應用服務器和數據庫服務器之間。應用程序通過JDBC驅動訪問Cobar集群,Cobar根據SQL和分庫規則對SQL做分解,然后分發到MySQL集群不同的數據庫實例上執行。不支持讀寫分離、存儲過程、跨庫join和分頁等操作。最近幾年都沒更新了,也沒啥人用了。
  • TDDL:淘寶團隊開發的,屬于client層方案。支持基本的crud語法和讀寫分離,但不支持join、多表查詢等語法。目前只用也不多,因為還依賴淘寶的diamond配置管理系統。
  • Atlas:360開源的,屬于proxy層方案。也是好幾年沒維護,現在用的公司基本也很少了。
  • Sharding-jdbc:當當開源的,屬于client層方案,目前已更名為ShardingSphere。SQL語法支持的也比較多,沒有太多限制,支持分庫分表、讀寫分離、分布式id生成、柔性事務(最大努力送達型事務、TCC事務)。而且使用的公司比較多,社區活躍。
  • Mycat:基于Cobar改造,屬于proxy層方案。支持的功能非常完善。相比Sharding-jdbc來說,年輕一些。

綜上,現在可以考慮使用的就是Sharding-jdbc和Mycat。

Sharding-jdbc這種client層方案的有點在于不用部署,運維成本低,不需要代理層的二次轉發,性能高。缺點是有耦合性。
Mycat這種proxy層方案的缺點在于需要部署,自己運維一套中間件,運維成本高,但是好處在于對項目是透明的。

MySQL分區(不建議使用)

這里介紹分區主要是防止和切分、分庫分表等概念混淆。
MySQL從5.1版本開始支持分區(partition)的功能。分區指根據一定的規則,數據庫把一個表分解成多個更小的、更容易管理的部分。就訪問數據庫的應用而言,邏輯上只有一個表或一個索引,但是實際上這個表可能由多個物理分區組成,即對應用是透明的。
MySQL分區引入了分區鍵的概念,采取分治法,有利于管理非常大的表。分區鍵用于根據某個區間值、特定值列表或HASH函數執行數據的聚集,讓數據根據規則分布在不同的分區中。MySQL 5.7中可用的分區類型主要有以下6種:

  • RANGE分區:基于一個給定連續區間范圍,把數據分配到不同的分區。
  • LIST分區:類似RANGE分區,區別在LIST分區是基于枚舉出的值列表分區,RANGE是基于給定的連續區間范圍分區。
  • COLUMNS分區:類似于RANGE和LIST,區別在于分區鍵既可以是多列,又可以是非整數。
  • HASH分區:基于給定的分區個數,把數據取模分配到不同的分區。
  • KEY分區:類似于HASH分區,但使用MySQL提供的哈希函數。
  • 子分區:也叫做復合分區或者組合分區,即在主分區下再做一層分區,將數據再次分割。

這里舉一LIST分區的例子:

CREATE TABLE orders_list (
  id INT AUTO_INCREMENT,
  customer_surname VARCHAR(30),
  store_id INT,
  salesperson_id INT,
  order_date DATE,
  note VARCHAR(500),
  INDEX idx (id)
) ENGINE = INNODB
  PARTITION BY LIST(store_id) (
  PARTITION p1
  VALUES IN (1, 3, 4, 17)
  INDEX DIRECTORY = '/var/orders/district1'
  DATA DIRECTORY = '/var/orders/district1',
  PARTITION p2
  VALUES IN (2, 12, 14)
  INDEX DIRECTORY = '/var/orders/district2'
  DATA DIRECTORY = '/var/orders/district2',
  PARTITION p3
  VALUES IN (6, 8, 20)
  INDEX DIRECTORY = '/var/orders/district3'
  DATA DIRECTORY = '/var/orders/district3',
  PARTITION p4
  VALUES IN (5, 7, 9, 11, 16)
  INDEX DIRECTORY = '/var/orders/district4'
  DATA DIRECTORY = '/var/orders/district4',
  PARTITION p5
  VALUES IN (10, 13, 15, 18)
  INDEX DIRECTORY = '/var/orders/district5'
  DATA DIRECTORY = '/var/orders/district5'
);

分區的優點:

  • 擴大存儲容量。
  • 優化查詢。在WHERE子句中包含分區條件時可以只掃描必要的分區來提高查詢效率;同事在涉及SUM()和COUNT()這類聚合函數的查詢時,可以在每個分區上并行處理。
  • 對于已經過期或不需要保存的數據分區,可以通過刪除分區來快速刪除數據。
  • 跨多磁盤來分散查詢數據,獲得更大的查詢吞吐量。

總結

到此這篇關于MySQL分庫分表與分區的文章就介紹到這了,更多相關MySQL分庫分表分區內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 淺談訂單重構之 MySQL 分庫分表實戰篇
  • mysql死鎖和分庫分表問題詳解
  • MySQL 分表分庫怎么進行數據切分
  • MySql分表、分庫、分片和分區知識深入詳解
  • MySql分表、分庫、分片和分區知識點介紹
  • MySQL分庫分表總結講解
  • mysql分表分庫的應用場景和設計方式
  • mysql數據庫分表分庫的策略
  • MyBatis實現Mysql數據庫分庫分表操作和總結(推薦)
  • MYSQL數據庫數據拆分之分庫分表總結
  • Mysql數據庫分庫和分表方式(常用)
  • MYSQL性能優化分享(分庫分表)
  • MySQL分庫分表詳情

標簽:龍巖 迪慶 徐州 南充 自貢 無錫 麗水 西寧

巨人網絡通訊聲明:本文標題《MySQL分庫分表與分區的入門指南》,本文關鍵詞  MySQL,分庫,分表,與,分區,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL分庫分表與分區的入門指南》相關的同類信息!
  • 本頁收集關于MySQL分庫分表與分區的入門指南的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品亲子伦对白| 欧美日韩一本到| 九九精品一区二区| 日本va欧美va精品发布| 亚洲成av人片观看| 日韩精品乱码免费| 日本最新不卡在线| 精品一区二区三区日韩| 精品亚洲国内自在自线福利| 老司机午夜精品| 卡一卡二国产精品| 国产成人综合精品三级| 成人h动漫精品一区二区| 成人av网址在线观看| 在线免费观看日本一区| 欧美精品777| 欧美精品一区二区三区高清aⅴ| 日韩精品一区国产麻豆| 国产亚洲欧美一区在线观看| 中文字幕一区二区三区四区| 1024国产精品| 午夜精品一区在线观看| 韩国v欧美v日本v亚洲v| 成人a区在线观看| 欧美肥胖老妇做爰| 久久免费看少妇高潮| 中文字幕欧美一| 丝瓜av网站精品一区二区| 狠狠色狠狠色综合系列| 91片黄在线观看| 欧美一区在线视频| 国产精品久久久久久户外露出 | 国内精品视频一区二区三区八戒| 成人免费视频一区二区| 欧美日韩精品久久久| 欧美精品一区二| 亚洲欧美色一区| 国产一区不卡在线| 欧美性猛交xxxxxx富婆| 久久蜜桃av一区二区天堂| 一区二区欧美在线观看| 国产在线国偷精品产拍免费yy| 91蝌蚪porny成人天涯| 久久一日本道色综合| 亚洲国产婷婷综合在线精品| 国产成人精品亚洲777人妖| 欧美日韩免费一区二区三区视频| 精品国产伦一区二区三区观看方式 | av日韩在线网站| 精品免费视频一区二区| 亚洲午夜久久久久中文字幕久| 国产乱码精品一区二区三| 欧美精品自拍偷拍动漫精品| 中文字幕五月欧美| 国产成人精品免费| 26uuu欧美日本| 日本色综合中文字幕| 欧美午夜寂寞影院| 亚洲激情综合网| www.亚洲激情.com| 国产精品天天看| 国产精品18久久久久久vr| 欧美一级免费观看| 日韩精品成人一区二区三区 | 日本中文在线一区| 欧美精选午夜久久久乱码6080| 一区二区三区四区av| 色丁香久综合在线久综合在线观看| 国产欧美一区二区精品秋霞影院| 极品尤物av久久免费看| 在线播放亚洲一区| 热久久免费视频| 欧美本精品男人aⅴ天堂| 久久精品国产亚洲5555| 日韩一区二区三区免费观看| 免费人成在线不卡| 欧美videossexotv100| 国产精品白丝jk白祙喷水网站 | 欧美四级电影网| 亚洲国产一区视频| 日韩视频免费直播| 精品亚洲成av人在线观看| 国产午夜亚洲精品不卡| 成人精品gif动图一区| 亚洲人成亚洲人成在线观看图片| 91在线视频官网| 亚洲v日本v欧美v久久精品| 在线成人免费观看| 国产剧情一区在线| 亚洲丝袜精品丝袜在线| 欧美性videosxxxxx| 日韩高清不卡在线| 欧美成人高清电影在线| 成人在线视频一区| 亚洲影院久久精品| 337p亚洲精品色噜噜| 国产一区二区三区日韩| 亚洲视频一区二区在线| 欧美午夜精品久久久久久孕妇 | 国产精品私人影院| 色偷偷久久一区二区三区| 性做久久久久久免费观看| 精品日本一线二线三线不卡| 粉嫩一区二区三区性色av| 一区二区激情小说| 精品国产91乱码一区二区三区 | 蜜臀av性久久久久蜜臀av麻豆 | 91精品国产欧美一区二区 | 亚洲欧美日韩一区二区| 欧美一个色资源| 不卡的av电影在线观看| 奇米精品一区二区三区在线观看一| 国产视频一区在线观看| 欧美日韩一区不卡| 99热精品国产| 精品一区二区三区香蕉蜜桃| 亚洲综合色噜噜狠狠| 精品sm捆绑视频| 欧美日韩国产天堂| 成人午夜又粗又硬又大| 丝袜美腿一区二区三区| 亚洲人成精品久久久久久 | 成人app在线| 久久精品99国产精品| 亚洲高清视频中文字幕| 国产精品水嫩水嫩| 久久久久国产精品麻豆| 91精品国产高清一区二区三区蜜臀| 99国产精品国产精品久久| 国产精品一区二区久久精品爱涩| 亚洲午夜久久久久| 亚洲欧美日韩成人高清在线一区| 久久婷婷色综合| 精品国产91亚洲一区二区三区婷婷| 欧美日韩在线三级| 色爱区综合激月婷婷| eeuss鲁片一区二区三区| 高清日韩电视剧大全免费| 国产精品一区二区三区乱码| 蜜臀av国产精品久久久久| 亚洲二区视频在线| 亚洲高清免费视频| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品久久久久精k8| 中文字幕国产一区| 欧美经典一区二区三区| 久久无码av三级| 国产精品嫩草99a| 日本一区二区成人| 国产精品免费久久久久| 一区在线播放视频| 一区二区三区免费在线观看| 亚洲精品视频免费观看| 亚洲已满18点击进入久久| 亚洲综合小说图片| 日韩av网站免费在线| 日本中文字幕一区| 国产福利视频一区二区三区| 丰满亚洲少妇av| 成人激情免费视频| 色妹子一区二区| 欧美日韩一卡二卡三卡| 日韩写真欧美这视频| 国产亚洲视频系列| 亚洲视频一区在线观看| 亚洲国产综合91精品麻豆| 麻豆精品在线播放| 成人在线视频一区| 欧美少妇一区二区| 久久综合狠狠综合| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美成人精品福利| 国产精品视频麻豆| 午夜激情久久久| 国产美女精品人人做人人爽| 99精品国产一区二区三区不卡| 欧美私人免费视频| 久久精品一区蜜桃臀影院| 《视频一区视频二区| 日本美女视频一区二区| 波多野结衣91| 欧美一区二区三区精品| 欧美激情中文字幕| 日日摸夜夜添夜夜添精品视频| 国产一区二区久久| 欧美三级中文字幕在线观看| 久久欧美一区二区| 亚洲一区二区三区四区在线| 精彩视频一区二区三区| 色婷婷精品大视频在线蜜桃视频| 日韩欧美一级二级三级| 亚洲伊人色欲综合网| 丰满白嫩尤物一区二区| 日韩午夜激情视频| 亚洲精品国产无天堂网2021 | 亚洲欧洲av在线| 精品一区二区三区视频在线观看| 色狠狠一区二区三区香蕉| 中文字幕第一区综合| 看国产成人h片视频|