91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用MyCat分表分庫原理分析

發布時間:2020-11-19 14:18:53 來源:億速云 閱讀:139 作者:小新 欄目:MySQL數據庫

這篇文章給大家分享的是有關如何使用MyCat分表分庫原理分析的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

MyCat是一個開源的分布式數據庫系統,是一個實現了MySQL協議的服務器,前端用戶可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令行訪問,而其后端可以用MySQL原生協議與多個MySQL服務器通信,也可以用JDBC協議與大多數主流數據庫服務器通信,其核心功能是分表分庫,即將一個大表水平分割為N個小表,存儲在后端MySQL服務器里或者其他數據庫里。

Mycat可以實現 讀寫分離 分表分庫

主從復制是MySQL自帶的哈~

關于分片取模算法:  根據id進行取模  根據數據庫集群的數量(或者說是表數量,mycat里面一個表對應一個庫)

使用MyCat分表分庫原理分析

Mycat中的路由結果是通過分片字段和分片方法來確定的,如果查詢條件中有 id 字段的情況還好,查詢將會落到某個具體的分片。如果查詢沒有分片的字段,會向所有的db都會查詢一遍,讓后封裝結果級給客戶端。

修改/mycat/conf/log4j2.xml日志級別為debug

比如:

在查詢

select * from user_info

發送三個db請求

如果是查詢素有的情況下(不帶條件)

轉換成為:

select * from db1.user_info
select * from db2.user_info
select * from db3.user_info

最后把結果集給mycat進行封裝 然后返回給客戶端

如果加個where id = 1  這樣帶條件的情況下  mycat會進行轉換 1%3=1  在db2上!轉換成 select * from db2.user_info where id = 1 如果查詢的是分片的話,效率很高。發送一條就搞定

如果不是分片字段的話  會發送三條哦!效率很低

比如 where name = ‘jack’ 會發送三條 根據條件去每個數據庫里面進行查詢 返回結果

tailf -200f mycat.log: 進行實時的查看

然后迅速的查詢  一目了然

注意分頁查詢:

select * from user_info limit 0,2

到底是哪個數據分片的?

往三個庫里面發三個select請求  獲取三對 六條結果

隨機抽取一對返回給客戶端

如果加了排序的條件呢?

 select * from user_info order by id  limit 0,2   (相當于取出最大的兩條數據)

先發送三個select 每個都是最大的兩條 然后返回給mycat  進行綜合評選拿出最大的倆 返回給客戶端

如果是

 select * from user_info   limit 0,3

每次請求返回的都是在改變的 是隨機的!

db1 取兩條 db2 和 db3隨機一條

感謝各位的閱讀!關于如何使用MyCat分表分庫原理分析就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无锡市| 玉环县| 交口县| 新宁县| 彭水| 荔浦县| 都昌县| 彰武县| 河北区| 容城县| 台前县| 昭苏县| 杭州市| 鄂州市| 沿河| 南平市| 沾化县| 南溪县| 镇原县| 前郭尔| 恭城| 泸水县| 金堂县| 兴宁市| 云梦县| 新郑市| 襄汾县| 屏东市| 德格县| 舟山市| 旬邑县| 江都市| 谢通门县| 施秉县| 海淀区| 阳新县| 皮山县| 湛江市| 哈密市| 唐山市| 丽水市|