MySQL之主從同步、分庫分表

1、主從同步的原理

MySQL主從復制的核心是二進制日志

二進制日志(binlog)記錄了所有DDL語句和DML語句,但不包括數據查詢(select、show)語句。

1.1、復制分三步

  1. master主庫在事務提交時,會把數據變更記錄在二進制日志文件binlog中。
  2. 從庫讀取主庫的二進制日志文件binlog,寫入從庫的中繼日志relaylog
  3. slave從庫重做中繼日志中的事件,將改變反映它自己的數據

2.、分庫分表

  • 垂直分庫
  • 垂直分表
  • 水平分庫
  • 水平分表

2.1、垂直分庫

以表為依據,根據業務將不同表拆分到不同庫中。

  • 按照業務對數據分級管理、維護、監控、擴展
  • 在高并發下,提高磁盤IO和數據量連接數

示例:

在“好又來”商城微服務項目中,一般有以下模塊:用戶模塊,訂單模塊,商品模塊等,

這時可將各個模塊的表單獨放在不同的庫中,

如biz1庫(用戶模塊的表)、biz2庫(訂單模塊的表)、biz3庫(商品模塊的表)等。

2.2、垂直分表

以字段為依據,根據字段屬性將不同字段拆分到不同表中。

  • 冷熱數據分離
  • 減少IO爭搶,兩表互不影響

示例:

同樣,在“好又來”商城項目中,

有商品表,表中有字段“商品id”、“商品名稱”、“商品價格”、“商品詳細描述”。

由于是“好又來”項目發展越來越好,商品越來越多,商品表數據量變得龐大。

這時結合業務根據拆分規則進行“垂直分表”,把商品表分為商品表1和商品表2:

商品表1:商品id、商品名稱、商品價格

商品表2:商品id、商品詳細描述

拆分規則:

  • 不常用的字段單獨放一張表,
  • 把text、bolb等大字段拆分出來放附表。

2.3、水平分庫

把一個庫的數據拆分到多個庫中。

  • 解決單庫大數據量、高并發的性能瓶頸問題
  • 提高系統穩定性、可用性

示例:

有“發發發”銀行,因為發展越來越好,客戶從幾十萬膨脹到幾百萬,這時需要給系統做升級。對數據庫進行拆分。

把一個庫的用戶拆分到4個庫中,根據客戶號取模把客戶分散到4個庫。

路由規則:

  • 有直接根據客戶號取模的,也有根據一些特殊的規則生成的號來路由的。

2.4、水平分表

將一個表的數據拆分到多個表中,可以在同一個庫,也可以在不同庫。

  • 優化單一表數據量過大導致的性能問題
  • 避免IO爭搶,減少鎖表的幾率

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38555.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電子戰學習筆記01:電子戰概論

0、寫在文前 本人在學習電子戰相關理論知識時,一直感覺無從下手,之后在老師的推薦下購買了《EW101:電子戰基礎》紙質書籍學習,所以將自己的學習筆記在CSDN上記錄一下,也供有需要的同學參考。 1、電子戰定義 電子戰&…

Spring Boot與Apache Kafka集成的深度指南

Spring Boot與Apache Kafka集成的深度指南 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 在現代分布式系統中,消息隊列的作用愈發重要&#xff0…

【鴻蒙學習筆記】鴻蒙ArkTS學習筆記

應用開發導讀:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5 【鴻蒙培訓】第1天?環境安裝 【鴻蒙培訓】第2天?裝飾器?組件和頁面生命周期 【鴻蒙學習筆記】數據類型 【鴻蒙學習筆記】運算…

Spring Cloud中的服務發現與注冊

Spring Cloud中的服務發現與注冊 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討Spring Cloud中的服務發現與注冊,這是微服務架構中至…

全網最詳細的 gin框架請求數據綁定Bind 源碼解析 -- 幫助你全面了解gin框架的請求數據綁定原理和方法

在gin框架中,我們可以將多種請求數據(json, form,uri,header等)直接綁定到我們定義的結構體,底層是通過反射方式獲取我們定義在結構體上面的tag來實現請求數據到我們的結構體數據的綁定的。 在gin的底層有2大體系的數據…

Python pip install模塊時C++編譯環境問題

pip install模塊時C編譯環境問題 在接觸和使用python后,常常會通過pip install命令安裝第三方模塊,大多數模塊可以直接安裝,但許多新同學仍會遇見某些模塊需要實時編譯后才能安裝,如報錯信息大概是缺乏C編譯環境,本文則…

【Elasticsearch】Elasticsearch索引創建與管理詳解

文章目錄 📑引言一、Elasticsearch 索引的基礎概念二、創建索引2.1 使用默認設置創建索引2.2 自定義設置創建索引2.3 創建索引并設置映射 三、索引模板3.1 創建索引模板3.2 使用索引模板創建索引 四、管理索引4.1 查看索引4.2 更新索引設置4.3 刪除索引 五、索引別名…

Go-知識測試-性能測試

Go-知識測試-性能測試 1. 定義2. 例子3. testing.common 測試基礎數據4. testing.TB 接口5. 關鍵函數5.1 testing.runBenchmarks5.2 testing.B.runN5.3 testing.B.StartTimer5.4 testing.B.StopTimer5.5 testing.B.ResetTimer5.6 testing.B.Run5.7 testing.B.run15.8 testing.B…

監聽藍牙對話的BlueSpy技術復現

本文是之前文章的BlueSpy技術的復現過程:https://mp.weixin.qq.com/s/iCeImLLPAwwKH1avLmqEpA 2個月前,網絡安全和情報公司Tarlogic在西班牙安全大會RootedCon 2024上提出了一項利用藍牙漏洞的BlueSpy技術,并在之后發布了一個名為BlueSpy的概…

深度學習之生成對抗網絡StyleGAN3

StyleGAN3 是由 NVIDIA 團隊提出的第三代生成對抗網絡(GAN),在前代 StyleGAN 和 StyleGAN2 的基礎上進行了改進,以實現更高質量的圖像生成。StyleGAN3 的主要改進在于解決了 StyleGAN2 中存在的偽影(artifacts)問題,并且提升了生成圖像的一致性和穩定性。 StyleGAN3 的…

git 提交代碼忽略eslint代碼檢測

在暫存代碼的時候會出現以上情況因為在提交代碼的時候會默認運行代碼進行檢測,如果不符合代碼規范就會進行報錯 解決: 使用 git commit --no-verify -m xxx 忽略eslint的檢測

Laravel 謹慎使用Storage::append()

在 driver 為 local 時,Storage::append()在高并發下,會存在丟失數據問題,文件被覆寫,而非尾部添加,如果明確是本地文件操作,像日志寫入,建議使用 Illuminate\Filesystem\Filesystem或者php原生…

技術成神之路:設計模式(一)單例模式

在軟件設計中,有時我們希望某個類的實例始終是唯一的,即無論在何處訪問這個類,都能夠得到同一個實例。單例模式(Singleton Pattern)就是為了解決這個問題而產生的。單例模式確保一個類只有一個實例,并提供一…

整合web-socket的常見bug

整合文章連接 此文是記錄我上網查找整合方案時候踩的坑,特別是注冊失敗的問題,比如還有什么去掉Compoent就可以,但是這樣這個端點就失效了 特別是報錯: at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.…

大模型日報 2024-06-30

大模型日報 2024-06-30 大模型產品 Briefy: AI知識助手 摘要: Briefy是一款AI知識助手,為專業用戶簡化每日信息消費,將復雜信息提煉成結構化摘要,組織成知識庫,并以自然語言按需檢索。 Claude Projects:組織聊天與共享…

邀請函 | 極限科技全新搜索引擎 INFINI Pizza 亮相 2024 可信數據庫發展大會!

過去一年,在全球 AI 浪潮和國家數據局成立的推動下,數據庫產業變革不斷、熱鬧非凡。2024 年,站在中國數字經濟產業升級和數據要素市場化建設的時代交匯點上,“2024 可信數據庫發展大會” 將于 2024 年 7 月 16-17 日在北京悠唐皇冠…

肆拾玖坊的商業模式,49坊新零售獎金制度體系,眾籌眾創+會員制

肆拾玖坊之所以能夠在短時間內成為白酒行業的“現象級”企業,,不僅是依靠獨特商業模式,同時也依靠的是堅持用戶為核心,圍繞用戶需求,讓用戶與產品直接產生連接理念。 坐標:廈門,我是易創客肖琳 深耕社交新零售行業10年,主要提供新零售系統工…

前端技術(二)——javasctipt 介紹

一、javascript基礎 1. javascript簡介 ⑴ javascript的起源 ⑵ javascript 簡史 ⑶ javascript發展的時間線 ⑷ javascript的實現 ⑸ js第一個代碼 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>…

Vue中的axios深度探索:從基礎安裝到高級功能應用的全面指南

文章目錄 前言一、axios 請求1. axios的概念2. axios的安裝3. axiso請求方式介紹4. axios請求本地數據5. axios跨域6. axios全局注冊7. axios支持的請求類型1&#xff09;get請求2&#xff09;post請求3&#xff09;put請求4&#xff09;patch請求5&#xff09;delete請求 二、…

MyBatis操作數據庫(入門)

本節目標 使用MyBatis完成簡單的增刪改查操作&#xff0c;參數傳遞掌握MyBatis的兩種寫法&#xff1a;注解和XML方式掌握MyBatis相關的日志配置 前言 在應用分層學習中&#xff0c;我們了解web應用程序一般分為三層&#xff0c;即Controller、Service、Dao。在之前的案例中&a…