大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

Mycat月分片方法

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

本篇文章主要介紹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教程,如有疑問,請在線咨詢,有專業老師隨時為您服務。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产美女在线免费观看 | 久久久久久夜精品精品免费 | 日日摸天天摸狠狠摸摸 | 激情网站视频 | 天天操综合视频 | 久久狠狠婷婷丁香香蕉 | 久久久精品免费热线观看 | 午夜免费福利网站 | 青青青久在线视频免费观看 | 农村女人十八毛片a级毛片 农村三级孕妇视频在线 | 免费看久久| 在线观看免费毛片 | 亚洲高清成人 | 奇米777视频二区中文字幕 | 青青青青青国产免费观看 | 天天爱天天色天天干 | 天天天做天天天天爱天天想 | 日本一本一区二区 | 377p欧洲最大胆艺术 | 精品成人免费一区二区在线播放 | 亚洲精品欧美精品 | 久久精品国产乱子伦多人 | 欧美黑人激情性久久 | 久久视频国产 | 一级做a毛片免费视频 | 午夜色网站 | 乡下女色又黄一级毛片 | 欧美亚洲中日韩中文字幕在线 | 九九热这里都是精品 | 一区二区三区亚洲视频 | 国产女人体一区二区三区 | 曰本亚洲欧洲色a在线 | 亚洲毛片免费观看 | 欧美色大成网站www永久男同 | 人与禽交免费网站视频 | 他也色在线 | 在线欧美视频免费观看国产 | 国产高清在线视频一区二区三区 | 日韩专区亚洲国产精品 | 久爱www成人网免费视频 | 午夜一级免费视频 |