1 mycat介紹 中間件:代理; 面向企業的開源的大的資料庫集群,性能極高;淘寶正在使用; 1.1 資料庫中間件歷史: amoeba:變形蟲 缺點:分散式高可用結構不穩定 cobar:mycat前身 缺點:cobar容易出現後端物理伺服器的假死現象 2 資料庫中間件的原理 3 mycat特點: 1 ...
1 mycat介紹
中間件:代理;
面向企業的開源的大的資料庫集群,性能極高;淘寶正在使用;
1.1 資料庫中間件歷史:
amoeba:變形蟲
缺點:分散式高可用結構不穩定
cobar:mycat前身
缺點:cobar容易出現後端物理伺服器的假死現象
2 資料庫中間件的原理
3 mycat特點:
1 )高性能的讀寫分離
2 )100億級別的大表水平分片,集群並行計算
3 )整合多種數據源的輸入和輸出
4 mycat核心組件
4.1 邏輯庫
邏輯庫(對應物理庫):mycat中間提供客戶端傳入sql,攔截sql根據配置解析翻譯要到物理庫執行的真正sql語句;客戶端在鏈接mycat之後可以操作資料庫語句,表格語句等等;客戶端在連接mycat看到的資料庫叫做邏輯庫(並不是真正的資料庫,數據可以來源一個物理庫,也可以來源於多個物理庫);
邏輯庫在mycat中需要使用<shema>標簽完成配置,在shcema.xml文件中配置
4.2 邏輯表
4.2.1 分片表
表格的整體數據量過大時,mycat將會使用多個物理庫中的真實表格對應做邏輯分片表的數據分片存儲,這種表格在mycat叫做分片表;
應用場景:數據量非常大,可以使用分片表;
4.2.2 非分片表
數據存儲時,整體數據量不夠海量,不足夠大時,可以使用非分片表存儲,相對來講,非分片表比分片表配置相對簡單;
4.2.3 全局表
企業中一些工具表格,字典表,他們的共同特點是:數據變動穩定,數據量不大(10萬),這種表格需要和業務表做非常多的關聯查詢,為了底層數據查詢時不做過多的誇庫操作,global全局表示為每個物理庫中都複製一份
工具表,字典表:
業務的很多邏輯,都不是用字元串表示的
通信成功:200狀態碼
通信異常:500
通信失敗:400
數字代表特殊含義的情況,可以記錄在資料庫中某個工具表或者字典表中;
4.2.4 ER表
mycat獨有:
分片表的一種特殊情況,多個分片表有關係的時候,經常做關聯查詢,如果多個分片表格中相關的數據,但是切分到的存儲物理庫不同,會導致關聯查詢/相關數據查詢時造成底層的非常大量的誇庫操作;
以訂單和訂單商品為例,一旦分片表格設置完成,很有可能2個表格相關的數據被切分到了不同的物理庫,相關數據查詢時,mycat底層誇庫操作非常多,造成查詢的效率非常低下;mycat就全球第一次提出ER表的概念;
ER表根據相關內容的設定主表(t_order)使用table標簽配置,從表不能使用純粹的分片表格設置,需要在table下指定(childtable),根據主表的切分邏輯完成從表的切分;