如何設計可以動態擴容縮容的分庫分表方案
設定好幾臺數據庫伺服器,每臺伺服器上幾個庫,每個庫多少個表,推薦是32庫 * 32表。
比如4臺伺服器,每臺伺服器上8個庫,每個庫32張表。
路由的規則,orderId%32 = 庫,orderId / 32 %32 = 表
擴容的時候,申請增加更多的資料庫伺服器,裝好mysql,倍數擴容,4臺伺服器,擴到8臺伺服器,16臺伺服器
由dba負責將原先資料庫伺服器的庫,遷移到新的資料庫伺服器上去,很多工具,庫遷移,比較便捷
我們這邊就是修改一下配置,調整遷移的庫所在資料庫伺服器的地址
重新發布系統,上線,原先的路由規則變都不用變,直接可以基於2倍的資料庫伺服器的資源,繼續進行線上系統的提供服務
轉自:中華石杉Java工程師面試突擊
相關推薦
如何設計可以動態擴容縮容的分庫分表方案
設定好幾臺數據庫伺服器,每臺伺服器上幾個庫,每個庫多少個表,推薦是32庫 * 32表。 比如4臺伺服器,每臺伺服器上8個庫,每個庫32張表。 路由的規則,orderId%32 = 庫,orderId / 32 %32 = 表 擴容的時候,申請增加更多的資料
44、如何設計可以動態擴容縮容的分庫分表方案?
1、面試題 如何設計可以動態擴容縮容的分庫分表方案? 2、面試官心裡分析 (1)選擇一個數據庫中介軟體,調研、學習、測試; (2)設計你的分庫分表的一個方案,你要分成多少個庫,每個庫分成多少個表,3個庫每個庫4個表; (3)基於選擇好的資料庫中介軟體,以及在測試環境建立好的分庫分表的環境
訂單表的分庫分表方案設計(大資料)
原創文章,轉載註明出處 一、兩種方案分庫分表 一般業界,對訂單資料的分庫分表,筆者瞭解,有兩類思路:按照訂單號來切分、按照使用者id來切分。 方案一、按照訂單號來做hash分散訂單資料 把訂單號看作是一個字串,做hash,分散到多個伺服器去。 具體到
MySQL分庫分表方案
人員 有趣的 而不是 其他 代理 延時 分片 -o 得到 1. MySQL分庫分表方案 1.1. 問題: 1.2. 回答: 1.2.1. 最好的切分MySQL的方式就是:除非萬不得已,否則不要去幹它。 1.2.2. 你的SQL語句不再是聲明式的(declarativ
MySQL主從(MySQL proxy Lua讀寫分離設置,一主多從同步配置,分庫分表方案)
否則 count user username 2個 ons 基礎 zxvf 路徑 Mysql Proxy Lua讀寫分離設置一.讀寫分離說明讀寫分離(Read/Write Splitting),基本的原理是讓主數據庫處理事務性增、改、刪操作(INSERT、UPDATE、DE
【分庫、分表】MySQL分庫分表方案
分表 性能 正常 事先 AD 現在 新用戶 我們 java 一、Mysql分庫分表方案 1.為什麽要分表: 當一張表的數據達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的話,我想有可能會死在那兒了。分表的目的就在於此,減小數據庫的負擔,縮短查詢時間。 mys
MySQL 分庫分表方案,總結的非常好!
導致 一個 磁盤空間 所有 bsp 功能 編程 從庫 框架 前言 公司最近在搞服務分離,數據切分方面的東西,因為單張包裹表的數據量實在是太大,並且還在以每天60W的量增長。 之前了解過數據庫的分庫分表,讀過幾篇博文,但就只知道個模糊概念, 而且現在回想起來什麽都是模模糊糊的
oracle遷移到mysql分庫分表方案之——ogg(goldengate)
apply columns version alt ML -c testing name sam 之前文章主要介紹了oracle 遷移到mysql,主要是原表原結構遷移,但是實際運維中會發現,到mysql以後需要分庫和分表的拆分操作,這個時候,用ogg來做,也是很強大好用的
MySQL 分庫分表方案總結
1.為什麼要分表: 當一張表的資料達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的話,我想有可能會死在那兒了。分表的目的就在於此,減小資料庫的負擔,縮短查詢時間。 mysql中有一種機制是表鎖定和行鎖定,是為了保證資料的完整性。表鎖定表示你們都不能對這張表進行操作,必須等我對
mysql分庫分表方案淺析
分庫分表(這裡不討論中介軟體)分庫:原因:單機負載高,優點:降低單機負載分表:原因:單表讀寫壓力大或者資料增長快,優點:使用多個表,提高讀寫效率 1、(程式碼)分表,即把一個很大的表達資料分到幾個表中,這樣每個表資料都不多。 優點:提高併發
數據設計,分庫分表
倉庫 聚集 AD 記錄 事務處理 功能 出了 cti 規模 當今的數據處理大致可以分成兩大類:聯機事務處理OLTP(On-Line Transaction Processing)、聯機分析處理OLAP(On-Line Analytical Processing)。OLTP是
分庫分表設計基礎
很多 有關 生成 select xxxx 維度 主備 出現 例如 隨著當今系統中的數據量越來越龐大,當我們設計系統時經常會關心數據庫的性能,以及數據庫是否需要做分庫分表處理。數據庫是否要分庫分表需要由業務吞吐量、數據庫品牌、數據量等多方面決定,分庫分表也還分為水平切分和垂直
資料庫分庫分表(sharding)系列(五) 一種支援自由規劃無須資料遷移和修改路由程式碼的Sharding擴容方案(轉)...
作為一種資料儲存層面上的水平伸縮解決方案,資料庫Sharding技術由來已久,很多海量資料系統在其發展演進的歷程中都曾經歷過分庫分表的Sharding改造階段。簡單地說,Sharding就是將原來單一資料庫按照一定的規則進行切分,把資料分散到多臺物理機(我們稱之為Shard)上儲存,從
資料庫分庫分表 sharding 系列 五 一種支援自由規劃無須資料遷移和修改路由程式碼的Sharding擴容方案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
資料庫分庫分表——擴容無須資料遷移的分片演算法
擴容無須資料遷移的分片演算法 常見的分庫分表方案大都用主鍵mod一個數(如分為8個庫,則 id % 8 根據餘數決定落到哪個分片)。此種方案中,如果要拓展資料庫將是十分複雜的事情(例如拓展為10個,則程式碼需要改為 id % 10 之前的舊資料也要做遷移)。我們希望有一種支援自由規劃無須資料遷移和修
MySQL優化分庫分表,為什麼要分表,分表以後如何進行排序查詢,業務如何設計?
MySQL優化分庫分表,為什麼要分表,分表以後如何進行排序查詢,業務如何設計? 昨天面試新人的時候,遇到了這麼一個問題,按照自己的想法大體聊了一些,但大多是感性的,並沒有完整的瞭解why and how. 今天查了一些相關的資料,包括《MySQL效能調優與架構設計》、《高效能Mysql》,慢慢的整
MySQL效能管理及架構設計(三):SQL查詢優化、分庫分表 - 完結篇
一、SQL查詢優化(重要) 1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow
MySQL 分庫分表及其平滑擴容方案 MySQL 分庫分表及其平滑擴容方案
MySQL 分庫分表及其平滑擴容方案 <a class="follow-nickName" href="https://me.csdn.net/kefengwang" target=
MySQL效能管理及架構設計:SQL查詢優化、分庫分表
1.1 獲取有效能問題SQL的三種方式 通過使用者反饋獲取存在效能問題的SQL; 通過慢查日誌獲取存在效能問題的SQL; 實時獲取存在效能問題的SQL; 1.1.2 慢查日誌分析工具 相關配置引數: slow_query_log # 啟動停止記錄
MySQL 分庫分表及其平滑擴容方案
眾所周知,資料庫很容易成為應用系統的瓶頸。單機資料庫的資源和處理能力有限,在高併發的分散式系統中,可採用分庫分表突破單機侷限。本文總結了分庫分表的相關概念、全域性ID的生成策略、分片策略、平滑擴容方案、以及流行的方案。 作者:王克鋒 出處:https:/