黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Mycat月分片方法

Mycat月分片方法

更新時間:2021-07-07 16:40:33 來源:動力節點 瀏覽1940次

本篇文章主要介紹Mycat以月進行分片的方法,包括配置方法、注意事項等。

mycat版本:1.4

數據節點:dn1,dn2,dn3

架構:主從

配置

創建測試表

CREATE TABLE `tdate` (
   `id` int(11) NOT NULL,
   `createdate` datetime DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

在三個節點上面分別執行創建表語句。

分片配置

Mycat月分片方法

<table>參數 

在table參數配置中使用了rule="sharding-by-month"分片函數,同時配置了13個數據節點分別是dn1-dn13,當然數據節點的數目沒有限制,在生產環境避免重復重啟mycat這個節點的范圍大小最好配置超過1年。

<datanode>參數

因為我這里只有三個節點,所以采取三個節點循環作為數據的保存節點,默認1,4,7,10,第二年1月,這些月份的數據保存在節點1。在生產婚假一般會配置12個節點,這樣每年的1月可以存在節點1,

 不支持這樣寫,datanode中的節點定義一定要和table一樣
 <dataNode name="dn1,dn4,dn7,dn10,dn13" dataHost="localhost1" database="db1" />

<datahost>參數

datahost配置的是主從讀寫分離,如果第一個writehost宕機了自動切換到第二個writehost

分片函數 

vim rule.xml
<tableRule name="sharding-by-month">
                <rule>
                        <columns>createdate</columns>
                        <algorithm>sharding-by-month</algorithm>
                </rule>
</tableRule>

<function name="sharding-by-month"
                class="org.opencloudb.route.function.PartitionByMonth">
                <property name="dateFormat">yyyy-MM-dd HH:mm:ss</property>
                <property name="sBeginDate">2015-01-01 00:00:00</property>

</function>

權威指南默認的自然月分片使用的dateFormat格式是yyyy-MM-dd,在這里我是故意這樣測試的。

注意:如果dateFormat格式是yyyy-MM-dd那么sBeginDate格式就必須是2015-01-01,否則就是上面我配置的這種對應關系。當我使用dateFormat格式是yyyy-MM-dd的時候我在插入語句的createdate字段使用“2015-01-01 00:00:00”格式的時間也可以識別,反之,我配置dateFormat格式是yyyy-MM-dd HH:mm:ss,當我的插入語句的createdate字段使用“2015-01-01”格式的時間會報錯,建議函數這里配置的是什么格式在執行插入語句的時候時間也使用什么格式。

在dateFormat格式是yyyy-MM-dd時分片字段的數據類型可以是date、datetime,在dateFormat格式是yyyy-MM-dd HH:mm:ss是分片字段的數據類型必須是datetime。

sBeginDate是開始時間

測試數據

在mycat中執行插入語句。

insert into tdate(id,createdate) values(1,'2015-01-01 00:00:00');
insert into tdate(id,createdate) values(2,'2015-02-01 00:00:00');
insert into tdate(id,createdate) values(3,'2015-03-01 00:00:00');
insert into tdate(id,createdate) values(4,'2015-10-01 00:00:00');
insert into tdate(id,createdate) values(5,'2016-01-01 00:00:00');

到master中查看數據:

select * from db1.tdate; 
select * from db2.tdate; 
select * from db3.tdate; 

Mycat月分片方法

插入的結果也正常的分布到了各個分片中,測試結果正確。

注意事項

1.在進行insert插入時分片字段必須明確在table后面列出,其它的默認字段可以不列出在1.4中不受影響。

2.values中不能使用函數,例如:now()

總結

mycat對月進行分片總體概念比較清晰,但是因為mycat本身對于容錯的處理比較弱,所以在sql語句方面使用盡量簡單的標準語法。

以上就是動力節點小編介紹的"Mycat月分片方法",希望對大家有幫助,想了解更多可查看Mycat教程,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: h网站免费看 | 国产成人女人在线视频观看 | a人片在线观看 | 在线欧美色图 | 午夜体验| 国产精品自在线天天看片 | 动漫视频成人无h码在线观看 | 中文字幕在线日韩 | 亚洲视频在线观看免费视频 | 日本欧美高清全视频 | 天天综合天天干 | 一个人看的免费视频www免费 | 国产欧美亚洲精品第一页久久肉 | 免费成年人在线观看视频 | 97青草香蕉依人在线播放 | 亚洲三级久久 | 午夜老湿影院 | 蜜桃欧美性大片 | 最新大黄网站免费 | 成人免费网站视频www | 98精品| 午夜影院啊啊啊 | 亚洲人成图片小说网站 | 免费麻豆国产黄网站在线观看 | 伊人365影院 | 免费黄色小网站 | 丝袜调教视频 | 黄在线观看www免费看 | 俄罗斯午夜影院 | 欧美同性videos可免费 | 日韩中文网 | 中文字幕精品视频在线观看 | h视频在线免费 | 成年人免费在线观看 | 麻豆md国产在线观看 | 在线免费观看污网站 | 午夜伦理影院 | 国产高清免费的视频 | 91短视频免费在线观看 | 色老头永久免费网站 | 一区二区免费在线观看 |