日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表?

發布時間:2025/3/20 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分庫分表介紹

隨著微服務這種架構的興起,我們應用從一個完整的大的應用,切分為很多可以獨立提供服務的小應用。每個應用都有獨立的數據庫。

數據的切分分為兩種:

垂直切分:按照業務模塊進行切分,將不同模塊的表切分到不同的數據庫中。

水平切分:將一張大表按照一定的切分規則,按照行切分到不同的表或者不同的庫中。

MyCAT介紹

官方網站:http://www.mycat.org.cn/

什么是MyCAT?

簡單的說,MyCAT就是:

  • 一個徹底開源的,面向企業應用開發的“大數據庫集群”
  • 支持事務、ACID、可以替代Mysql的加強版數據庫
  • 一個可以視為“Mysql”集群的企業級數據庫,用來替代昂貴的Oracle集群
  • 一個融合內存緩存技術、Nosql技術、HDFS大數據的新型SQL Server
  • 結合傳統數據庫和新型分布式數據倉庫的新一代企業級數據庫產品
  • 一個新穎的數據庫中間件產品

MyCAT的目標是:低成本的將現有的單機數據庫和應用平滑遷移到“云”端,解決數據存儲和業務規模迅速增長情況下的數據瓶頸問題。

MyCAT的關鍵特性

  • 支持 SQL 92標準
  • 支持Mysql集群,可以作為Proxy使用
  • 支持JDBC連接ORACLE、DB2、SQL Server,將其模擬為MySQL Server使用
  • 支持galera for mysql集群,percona-cluster或者mariadb cluster,提供高可用性數據分片集群
  • 自動故障切換,高可用性
  • 支持讀寫分離,支持Mysql雙主多從,以及一主多從的模式
  • 支持全局表,數據自動分片到多個節點,用于高效表關聯查詢
  • 支持獨有的基于E-R 關系的分片策略,實現了高效的表關聯查詢
  • 多平臺支持,部署和實施簡單
  • MyCAT架構

    MyCAT核心概念

  • Schema:由它指定邏輯數據庫
  • Table:邏輯表
  • DataNode:真正存儲節點
  • DataHost:真正的數據庫主機
  • Mycat存在的問題

    跨庫join問題

    • 通過業務分析,將不同庫的join查詢拆分成多個select
    • 建立全局表(每個庫都有一個相同的表)
    • 冗余字段(不符合數據庫三范式)
    • E-R分片(將有關系的記錄都存儲到一個庫中)
    • 最多支持跨兩張表跨庫的join

    分布式事務(弱事務)

    • 強一致性事務(同步)
    • 最終一致性事務(異步思想)

    分布式主鍵

    • redis incr命令
    • 數據庫(生成主鍵)
    • UUID
    • snowflake算法

    1.1 分片策略

    MyCAT支持水平分片與垂直分片:

    • 水平分片:一個表格的數據分割到多個節點上,按照行分隔。
    • 垂直分片:一個數據庫中多個表格A,B,C,A存儲到節點1上,B存儲到節點2上,C存儲到節點3上。

    MyCAT通過定義表的分片規則來實現分片,每個表格可以捆綁一個分片規則,每個分片規則指定一個分片字段并綁定一個函數,來實現動態分片算法。

  • Schema:邏輯庫,與MySQL中的Database(數據庫)對應,一個邏輯庫中定義了所包括的Table。
  • Table:表,即物理數據庫中存儲的某一張表,與傳統數據庫不同,這里的表格需要聲明其所存儲的邏輯數據節點DataNode。在此可以指定表的分片規則。
  • DataNode:MyCAT的邏輯數據節點,是存放table的具體物理節點,也稱之為分片節點,通過DataSource來關聯到后端某個具體數據庫上
  • DataSource:定義某個物理庫的訪問地址,用于捆綁到Datanode上
  • Mycat讀寫分離

    MyCat的讀寫分離是建立在MySQL主從復制基礎之上實現的。

    數據庫讀寫分離對于大型系統或者訪問量很高的互聯網應用來說,是必不可少的一個重要功能。對于MySQL來說,標準的讀寫分離是主從模式,一個寫節點Master后面跟著多個讀節點,讀節點的數量取決于系統的壓力,通常是1-3個讀節點的配置

    Mycat讀寫分離和自動切換機制,需要mysql的主從復制機制配合。

    關注我,后續更多干貨奉上!

    總結

    以上是生活随笔為你收集整理的mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。