mycat權威指南-讀書筆記

1.數據庫垂直拆分

1.1)什麼是垂直拆分

垂直拆分是指按照業務將表進行分類,分佈到不同的數據庫上面,這樣也就將數據或者說壓力分擔到不同的庫上面。

1.2)拆分的優缺點

優點:拆分後業務更清晰,數據和代碼維護更簡單。
缺點:表無法join,只能通過接口,事務處理複雜。

2.數據庫水平拆分

2.1)什麼是水平拆分

水平拆分不是將表做分類,而是按照某個字段的某種規則將同一個表的數據分散到多個庫中,每個表包含一部分數據。

2.2)分片規則

  • 按照用戶ID求模,將數據分散到不同的數據庫。
  • 按照日期,將不同月甚至日的數據分散到不同的庫中。
  • 按照某個特定的字段求模,或者根據特定範圍段分散到不同的庫中。

2.3)拆分優缺點

優點:不存在單表大數據,性能瓶頸,提高了系統穩定性和負載能力。
缺點:分片規則不好把握,多次擴展難度較大。

3.mycat工作原理

mycat會攔截用戶發送過來的SQL語句, 首先對SQL語句做了一些特定的分析: 如分片分析、路由分析、讀寫分離分析、緩存分析,然後將此SQL發往後端的真實數據庫,並將返回的結果做適當的處理,最終再返回給用戶。

4.幾個重要概念

4.1)ER表

子表的記錄與所關聯的父表記錄存放在同一個數據分片上,即子表依賴於父表,這樣可保證數據join不會有跨庫操作。

4.2)全局表

一般變動不頻繁, 數據量不大的表可定義爲全局表, mycat通過數據冗餘來解決這類表的join, 即所有的分片都有一份數據的拷貝。數據冗餘是解決跨分片join的一種很好的思路。

4.3)全局序列號

數據切分後, 原有的關係數據庫中的主鍵約束在分佈式條件下將無法使用,因此需要引入外部機制保證全局性數據唯一性標識,這就是全局序列號。

5.mycat目錄結構

5.1)bin目錄

存放了一些可執行命令

5.2)conf目錄

server.xml: mycat服務器參數調整和用戶授權的配置
schema.xml: 邏輯庫定義和表以及分片定義的配置
rule.xml: 分片規則的配置

5.3)lib目錄

存放mycat依賴的一些jar文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章