mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表?
生活随笔
收集整理的這篇文章主要介紹了
mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分庫分表介紹
隨著微服務這種架構的興起,我們應用從一個完整的大的應用,切分為很多可以獨立提供服務的小應用。每個應用都有獨立的數據庫。
數據的切分分為兩種:
垂直切分:按照業務模塊進行切分,將不同模塊的表切分到不同的數據庫中。
水平切分:將一張大表按照一定的切分規則,按照行切分到不同的表或者不同的庫中。
MyCAT介紹
官方網站:http://www.mycat.org.cn/
什么是MyCAT?
簡單的說,MyCAT就是:
- 一個徹底開源的,面向企業應用開發的“大數據庫集群”
- 支持事務、ACID、可以替代Mysql的加強版數據庫
- 一個可以視為“Mysql”集群的企業級數據庫,用來替代昂貴的Oracle集群
- 一個融合內存緩存技術、Nosql技術、HDFS大數據的新型SQL Server
- 結合傳統數據庫和新型分布式數據倉庫的新一代企業級數據庫產品
- 一個新穎的數據庫中間件產品
MyCAT的目標是:低成本的將現有的單機數據庫和應用平滑遷移到“云”端,解決數據存儲和業務規模迅速增長情況下的數據瓶頸問題。
MyCAT的關鍵特性
MyCAT架構
MyCAT核心概念
Mycat存在的問題
跨庫join問題
- 通過業務分析,將不同庫的join查詢拆分成多個select
- 建立全局表(每個庫都有一個相同的表)
- 冗余字段(不符合數據庫三范式)
- E-R分片(將有關系的記錄都存儲到一個庫中)
- 最多支持跨兩張表跨庫的join
分布式事務(弱事務)
- 強一致性事務(同步)
- 最終一致性事務(異步思想)
分布式主鍵
- redis incr命令
- 數據庫(生成主鍵)
- UUID
- snowflake算法
1.1 分片策略
MyCAT支持水平分片與垂直分片:
- 水平分片:一個表格的數據分割到多個節點上,按照行分隔。
- 垂直分片:一個數據庫中多個表格A,B,C,A存儲到節點1上,B存儲到節點2上,C存儲到節點3上。
MyCAT通過定義表的分片規則來實現分片,每個表格可以捆綁一個分片規則,每個分片規則指定一個分片字段并綁定一個函數,來實現動態分片算法。
Mycat讀寫分離
MyCat的讀寫分離是建立在MySQL主從復制基礎之上實現的。
數據庫讀寫分離對于大型系統或者訪問量很高的互聯網應用來說,是必不可少的一個重要功能。對于MySQL來說,標準的讀寫分離是主從模式,一個寫節點Master后面跟著多個讀節點,讀節點的數量取決于系統的壓力,通常是1-3個讀節點的配置
Mycat讀寫分離和自動切換機制,需要mysql的主從復制機制配合。
關注我,后續更多干貨奉上!
總結
以上是生活随笔為你收集整理的mycat配置访问oracle_MySQL:如何使用MyCAT实现分库分表?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: csv python 逐行读取_从 Ex
- 下一篇: linux cmake编译源码,linu