




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課程目標1、掌握不同數(shù)據(jù)分片策略的配置方式與特點2、理解Mycat 注解的作用與應用場景3、Mycat 擴容與數(shù)據(jù)導入導出4、Mycat原理分析總結(jié)內(nèi)容定位適合在了解了Mycat 的基本使用之后,想要深入學習Mycat 的同學1主從1.1主從的含義在多服務器的架構(gòu)中,至少要有一個主節(jié)點(master),跟主節(jié)點相對的,把它叫做從節(jié)點(slave)。主從,就是把主節(jié)點的數(shù)據(jù)到一個或者多個從節(jié)點。主服務器和從服務器可以在不同的IP 上,通過的過程。連接來同步數(shù)據(jù),這個是異步1.2主從的形式1一主一從/一主多從從雙主級聯(lián)21.3主從的用途數(shù)據(jù)備份:把數(shù)據(jù)到不同的機器上,以免單臺服務器發(fā)生故障時數(shù)據(jù)丟
2、失。讀寫分離:讓主庫負責寫,從庫負責讀,從而提高讀寫的并發(fā)度。高可用HA:當節(jié)點故障時,自動轉(zhuǎn)移到其他節(jié)點,提高可用性。擴展:結(jié)合負載的機制,均攤所有的應用請求,降低單機IO。主從是怎么實現(xiàn)的呢? 回顧:Redis 主從怎么實現(xiàn)的?1.4binlog客戶端對數(shù)據(jù)庫進行操作的時候,包括 DDL 和 DML 語句,服務端會在日志文件中用事件的形式所有的操作,這個文件就是 binlog 文件(屬于邏輯日志,跟Redis 的AOF 文件類似)?;赽inlog,可以實現(xiàn)主從和數(shù)據(jù)恢復。1.4.1 binlog 配置重啟服務3serviced stopserviced start# 如果出錯查看日志lo
3、g-bin=/var/lib/-binserver-id=1編輯fBinlog 默認是不開啟的,需要在服務端手動配置。注意有一定的性能損耗。1.4.2 binlog 格式SEMENT:每一條修改數(shù)據(jù)的SQL 語句(減少日志量,節(jié)約IO)。ROW:哪條數(shù)據(jù)被修改了,修改成什么樣子了(5.7 以后默認)。MIXED:結(jié)合兩種方式,一般的語句用SEMENT,函數(shù)之類的用 ROW。查看binlog 格式:4show binary logs;查看binlog 列表show global variables like %binlog_format%;show variables like log_bin%
4、;是否開啟binlogvi /var/log/d.logcd /var/lib/用binlog 工具,基于時間查看 binlog(注意這個是Linux 命令,不是SQL)1.5主從原理配置1.5.1 主從2、在主庫創(chuàng)建具有權限的用戶,允許從庫連接51、主庫開啟binlog,設置 server-id/usr/bysqlbinlog -start-datetime=2019-08-22 13:30:00 -stop-datetime=2019-08-22 14:01:01 -d gupao/var/lib/-bin.000001show binlog events in -bin.000001;查
5、看binlog 內(nèi)容server-id=2log-bysql-binrelay-log=-relay-binread-only=1log-slave-updates=1log-slave-updates 決定了在從binlog級聯(lián)的關鍵。4、在從庫執(zhí)行數(shù)據(jù)時,是否binlog,實現(xiàn)雙主和stop slave;change master tomaster_host=46,master_user=repl,master_password=123456,master_log_file=-bin.000001,master_log_start slave;=4;6以下為正常:SHOW SLAVE SU
6、S G5、查看同步狀態(tài)、從庫f 配置,重啟數(shù)據(jù)庫GRANT REPLICATION SLAVE, REPLICATION CNT ON *.* TO repl47 IDENTIFIED BY123456;FLUSH PRIVILEGES;1.5.2 主從原理1、slave 服務器執(zhí)行 start slave,開啟主從開關, slave 服務器的 IO 線程請求從master 服務器binlog(如果該線程追趕上了主庫,會進入睡眠狀態(tài))。2、master 服務器創(chuàng)建Log Dump 線程,把binlog 發(fā)送給slave 服務器。slave 服務器把到的binlog 日志內(nèi)容寫入中繼日志rela
7、y log(會位置信息,以便下次繼續(xù))。成SQL 語句,并執(zhí)行。73、slave 服務器的SQL 線程會實時檢測relay log 中新增的日志內(nèi)容,把relay log這里面涉及到幾個線程:2Mycat 高可用目前Mycat 沒有實現(xiàn)對多Mycat 集群的支持,可以暫時使用HAProxy 來做負載思路:HAProxy 對Mycat 進行負載。Keepalived 實現(xiàn)VIP。3Mycat 注解3.1注解的作用當關聯(lián)的數(shù)據(jù)不在同一個節(jié)點的時候,Mycat 是無法實現(xiàn)跨庫join 的。舉例:如果直接在 150主表數(shù)據(jù),151明細表數(shù)據(jù),此時關聯(lián)查詢無法查詢出來。在mycat 數(shù)據(jù)庫查詢,直接查詢
8、沒有結(jié)果。8- 150 節(jié)點INSERTO order_info (order_id, uid, nums, se, create_time, update_time) VALUES (9, 1000003, 2673, 1, 2019-9-25 11:35:49, 2019-9-25 11:35:49);- 151 節(jié)點INSERTO order_detail (order_id, id, goods_id, price, is_pay, is_ship, sus) VALUES (9, 20180001,2673, 19.99, 1, 1, 1);Mycat 作為一個中間件,有很多自身不支
9、持的SQL 語句,比如過程,但是這些語句在實際的數(shù)據(jù)庫節(jié)點上是可以執(zhí)行的。有沒有辦法讓 Mycat 做一層透明的直接找到目標數(shù)據(jù)節(jié)點去執(zhí)行這些SQL 語句呢?轉(zhuǎn)發(fā),那解。須要有式告訴Mycat 應該在哪個節(jié)點上執(zhí)行。這個就是 Mycat 的注在需要執(zhí)行的SQL 語句前面加上一段代碼,幫助Mycat 找到的目標節(jié)點。3.2注解的用法注解的形式是 :/*!mycat: sql=注解 SQL 語句*/注解的使用方式是 :/*!mycat: sql=注解SQL 語句*/ 真正執(zhí)行的SQL使用時將 = 號后的 注解SQL 語句 替換為需要的使用注解有一些限制,或者注意的地方:SQL語句即可。使用注解并不
10、額外增加 MyCat 的執(zhí)行時間;從SQL 應盡量簡單,因為它只是用來做路由的。復雜度以及性能考慮,注解注解可以幫解決什么問題呢?9原始 SQL注解 SQLselect如果需要確定分片,則使用能確定分片的注解,比如/*!mycat: sql=select * from users where user_id=1*/如果要在所有分片上執(zhí)行則可以不加能確定分片的條件insert使用 insert 的表作為注解 SQL,必須能確定到某個分片原始 SQL的字段必須包括分片字段片表(只在某個節(jié)點上):必須能確定到某個分片delete使用 delete 的表作為注解 SQLupdate使用 update
11、的表作為注解 SQLselect a.order_id,b.price from order_info a, order_detail b where a.nums = b.goods_id;3.3注解使用示例3.3.1 創(chuàng)建表或過程customer.id=1 全部路由到 1463.3.2 特殊語句自定義分片Mycat 本身不支持insert select,通過注解支持3.3.3 多表 ShareJoin如果你在錄播中看到翻車了,可以去看這篇文章:讀寫分離讀寫分離 : 配置 Mycat 讀寫分離后,默認查詢都會從讀節(jié)點獲取數(shù)據(jù),但是有些場景需要獲取實時數(shù)據(jù),如果從讀節(jié)點獲取數(shù)據(jù)可能因延時而無法
12、實現(xiàn)實時,Mycat 支持通過注解 /*balance*/ 來強制從寫節(jié)點(write host)查詢數(shù)據(jù)。10/*balance*/ select a.* from customer a where a.id=6666;/*!mycat:cet=io.mycat.cets.ShareJoin */select a.order_id,b.price from order_info a, order_detail b where a.nums = b.goods_id;/*!mycat: sql=select * from customer where id =1 */ INSERTO test
13、2(id) SELECT id FROM order_detail;-過程/*!mycat: sql=select * from customer where id =1 */ CREATE PROCEDURE test_proc() BEGIN END ;- 表/*!mycat: sql=select * from customer where id =1 */ CREATE TABLE test2(id);3.3.4 讀寫分離數(shù)據(jù)庫選擇(1.6 版本之后)注解支持的! 不被單庫兼容注解支持的#不被 MyBatis 兼容隨著Mycat 的開發(fā),的新功能正在加入。3.4注解原理Mycat 在執(zhí)
14、行 SQL 之前會先點上執(zhí)行。如果SQL 語句無法SQL 語句,在獲得分片信息后再到對應的物理節(jié),則不能被執(zhí)行。如果語句中有注解,則會先注解的內(nèi)容獲得分片信息,再把真正需要執(zhí)行的SQL 語句發(fā)送對對應的物理節(jié)點上。所以在使用主機的時候,應該清楚地知道目標SQL 應該在哪個節(jié)點上執(zhí)行,注解的SQL 也指向這個分片,這樣才能使用。如果注解沒有使用正確的條件,會導致原始SQL 被發(fā)送到所有的節(jié)點上執(zhí)行,造成數(shù)據(jù)錯誤。4 分片策略詳解Mycat指南.pdf Page 116分片的目標是將大量數(shù)據(jù)和請求均勻分布在多個節(jié)點上,通過這種方式數(shù)據(jù)服務的和負載能力。4.1Mycat 分片策略詳解總體上分為連續(xù)分
15、片和離散分片,還有一種是連續(xù)分片和離散分片的結(jié)合,例如先范圍后取模。11/*!mycat: db_type=master */ select * from customer;/*!mycat: db_type=slave */ select * from customer;/*#mycat: db_type=master */ select * from customer;/*#mycat: db_type=slave */ select * from customer;比如范圍分片(id 或者時間)就是典型的連續(xù)分片,單個分區(qū)的數(shù)量和邊界是確定的。離散分片的分區(qū)總數(shù)量和邊界是確定的,例如對k
16、ey 進行哈希運算,或者再取模。:范圍查詢、熱點數(shù)據(jù)、擴容連續(xù)分片優(yōu)點:范圍條件查詢消耗資源少(不需要匯總數(shù)據(jù))擴容無需遷移數(shù)據(jù)(分片固定)連續(xù)分片缺點:1)存在數(shù)據(jù)熱點的可能性2)并發(fā)能力受限于單一或少量DataNode(集中)離散分片優(yōu)點:1)并發(fā)能力增強(負載到不同的節(jié)點)2)范圍條件查詢性能(并行計算)離散分片缺點:1)數(shù)據(jù)擴容比較,涉及到數(shù)據(jù)遷移問題122)數(shù)據(jù)庫連接消耗比較多4.1.1 連續(xù)分片范圍分片(已演示)特點:容易出現(xiàn)冷熱數(shù)據(jù)按自然月分片建表語句13CREATE TABLE sharding_by_month (create_time timestNULL DEFAULT
17、NULL ON UPDATE CURRENT_TIMEST,# range start-end ,data node index # K=1000,M=10000.0-500M=0500M-1000M=11000M-1500M=2autopartition-long.txtidrang-long邏輯表分片規(guī)則分片算法columns 標識將要分片的表字段,字符串類型,與 dateFormat 格式一致。algorithm 為分片函數(shù)。 dateFormat 為日期字符串格式。 sBeginDate 為開始日期。 sEndDate 為結(jié)束日期注意:節(jié)點個數(shù)要大于月份的個數(shù)測試語句14INSERTO
18、 sharding_by_month (create_time,db_nm) VALUES (2019-10-16, database();INSERTO sharding_by_month (create_time,db_nm) VALUES (2019-10-27, database();INSERTO sharding_by_month (create_time,db_nm) VALUES (2019-11-04, database();INSERTO sharding_by_month (create_time,db_nm) VALUES (2019-11-11, database()
19、;yyyy-MM-dd2019-10-012019-12-31create_timeqs-partbymonthdb_nm varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;另外還有按天分片(可以指定多少天一個分片)、按小時分片4.1.2 離散分片枚舉分片將所有可能出現(xiàn)的值列舉出來,指定分片。例如:據(jù)存放在不同的節(jié)點,可用枚舉的方式。建表語句:34 個省,要將不同的省的數(shù)邏輯表:分片規(guī)則:分片算法:15sharding_idhash-CREATE TABLE sharding_by_file (age(11) NOT NU
20、LL,db_nm varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERTO sharding_by_month (create_time,db_nm) VALUES (2019-12-25, database();INSERTO sharding_by_month (create_time,db_nm) VALUES (2019-12-31, database();type:默認值為 0,0 表示eger,非零表示String。PartitionByFileMap.java,通過map 來實現(xiàn)。策略文件:parti
21、tion-hash-.txt數(shù)據(jù)測試:特點:適用于枚舉值固定的場景。一致性哈希一致性 hash 有效解決了分布式數(shù)據(jù)的擴容問題。建表語句:邏輯表16CREATE TABLE sharding_by_murmur ( id(10) DEFAULT NULL,db_nm varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERTO sharding_by_file (age,db_nm) VALUES (16, database();INSERTO sharding_by_file (age,db_nm) VALUES (
22、17, database();INSERTO sharding_by_file (age,db_nm) VALUES (18, database();16=017=118=2partition-hash-.txt00分片規(guī)則分片算法測試語句17INSERTO sharding_by_murmur (id,db_nm) VALUES (1, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (2, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (3, database(
23、);INSERTO sharding_by_murmur (id,db_nm) VALUES (4, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (5, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (6, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (7, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (8, database(
24、);INSERTO sharding_by_murmur (id,db_nm) VALUES (9, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (10, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (11, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (12, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (13, datab
25、ase();INSERTO sharding_by_murmur (id,db_nm) VALUES (14, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (15, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (16, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (17, database();03160idqs-murmur特點:可以一定程度減少數(shù)據(jù)的遷移。十進模分片(已演示)根據(jù)分片鍵進行
26、十進制求模運算。特點:分布均勻,但是遷移工作量比較大固定分片哈希這是先求模得到邏輯分片號,再根據(jù)邏輯分片號直接法。建表語句:到物理分片的一種散列算18CREATE TABLE sharding_by_long (id(10) DEFAULT NULL,3columnmod-longINSERTO sharding_by_murmur (id,db_nm) VALUES (18, database();INSERTO sharding_by_murmur (id,db_nm) VALUES (19, database();INSERTO sharding_by_murmur (id,db_nm)
27、 VALUES (20, database();邏輯表分片規(guī)則平均分成 8 片(%1024 的余數(shù),1024=128*8):partitionCount 為指定分片個數(shù)列表。partitionLength 為分片范圍列表。第二個例子:兩個數(shù)組,分成不均勻的 3 個節(jié)點(%1024 的余數(shù),1024=2*256+1*512):192,1256,5128128idqs-sharding-by-longdb_nm varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;3 個節(jié)點,對 1024 取模余數(shù)的分布測試語句特點:在一定范圍內(nèi)
28、id 是連續(xù)分布的。取模范圍分片邏輯表建表語句分片規(guī)則20user_idsharding-by-patternCREATE TABLE sharding_by_pattern (id varchar(20) DEFAULT NULL,db_nm varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERTO sharding_by_long (id,db_nm) VALUES (222, database();INSERTO sharding_by_long (id,db_nm) VALUES (333, databas
29、e();INSERTO sharding_by_long (id,db_nm) VALUES (666, database();分片算法patternValue 取?;鶖?shù),這里設置成 100partition-pattern.txt,一共 3 個節(jié)點 id=19%100=19,在dn1; id=222%100=22,dn2; id=371%100=71,dn3測試語句特點:可以調(diào)整節(jié)點的數(shù)據(jù)分布。21INSERTO sharding_by_pattern (id,db_nm) VALUES (19, database();INSERTO sharding_by_pattern (id,db_n
30、m) VALUES (222, database();INSERTO sharding_by_pattern (id,db_nm) VALUES (371, database();# id partition range start-end ,data node index#host configuration1-20=021-70=171-100=20-0=01000partition-pattern.txt范圍取模分片建表語句邏輯表分片規(guī)則分片算法partition-range-mod.txt22# range start-end ,data node group size 0-20000
31、=120001-40000=2partition-range-mod.txtidqs-rang-modCREATE TABLE sharding_by_rang_mod (id big(20) DEFAULT NULL,db_nm varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;解讀:先范圍后取模。Id 在 20000 以內(nèi)的,全部分布到dn1。Id 在 20001-40000的,%2 分布到dn2,dn3。數(shù)據(jù):特點:擴容的時候舊數(shù)據(jù)無需遷移其他分片規(guī)則應用指定分片PartitionDirectBySubString日
32、期范圍哈希PartitionByRangeDateHash冷熱數(shù)據(jù)分片PartitionByHotDate也可以自定義分片規(guī)則: extends AbstractPartitionAlgorithmRuleAlgorithm。implements4.1.3 切分規(guī)則的選擇步驟:1、找到需要切分的大表,和關聯(lián)的表2、確定分片字段(盡量使用主鍵),一般用最頻繁使用的查詢條件3、考慮單個分片的問題。容量和請求、數(shù)據(jù)增長(業(yè)務特性)、擴容和數(shù)據(jù)遷移23INSERTO sharding_by_rang_mod (id,db_nm) VALUES (666, database();INSERTO shar
33、ding_by_rang_mod (id,db_nm) VALUES (6667, database();INSERTO sharding_by_rang_mod (id,db_nm) VALUES (16666, database();INSERTO sharding_by_rang_mod (id,db_nm) VALUES (21111, database();INSERTO sharding_by_rang_mod (id,db_nm) VALUES (22222, database();INSERTO sharding_by_rang_mod (id,db_nm) VALUES (2
34、3333, database();INSERTO sharding_by_rang_mod (id,db_nm) VALUES (24444, database();例如:按照什么遞增?序號還是日期?主鍵是否有業(yè)務意義?一般來說,分片數(shù)要比當前規(guī)劃的節(jié)點數(shù)要大??偨Y(jié):根據(jù)業(yè)務場景,合理地選擇分片規(guī)則。舉例:老師:3.7 億的數(shù)據(jù)怎么分表?我是不是分成 3 臺服務器?1、一年內(nèi)到達多少?兩年內(nèi)到達多少?(數(shù)據(jù)的增長速度)?答:一臺設備每秒鐘往 386400*4=345600 條。每各寫入一條數(shù)據(jù),一共 4 臺設備。每一個月 10368000 條。一天分析:增長速度均勻,可以用日期切分,每個月分一
35、。2、什么業(yè)務?所有的數(shù)據(jù)都會,還是新數(shù)據(jù)為主?答:新數(shù)據(jù)為主,但是所有的數(shù)據(jù)都可能會到。3、表結(jié)構(gòu)和表數(shù)據(jù)是什么樣的?一個月消耗多少空間?答:字段不多,算過了,三年數(shù)據(jù)量有 3.7 億,30G。分析:30G 沒必要分庫,浪費機器。4、量怎么樣?并發(fā)壓力大么?答:并發(fā)有一點吧分析:如果并發(fā)量不大,不用分庫,只需要在單庫分表。不用引入 Mycat 中間件了。如果要自動路由的話可以用Sharding-JDBC,否則就是自己拼裝表名。5、3有沒有關聯(lián)查詢之類的操作?答:沒有。24分析:還是拼裝表名簡單一點。5 Mycat 離線擴縮容當規(guī)劃了數(shù)據(jù)分片,而數(shù)據(jù)已經(jīng)超過了單個節(jié)點的上線,或者需要下線節(jié)點的
36、時候,就需要對數(shù)據(jù)重新分片。5.1Mycat 自帶的工具5.1.1 準備工作1、mycat 所在環(huán)境安裝2、mycat 的 lib 目錄下添加客戶端程序。的 jdbc 驅(qū)動包。3、對擴容縮容的表所有節(jié)點數(shù)據(jù)進行備份,以便遷移失敗后的數(shù)據(jù)恢復。5.1.2 步驟以取模分片表sharding-by-mod 縮容為例。1schema.xml、rule.xml 并重命名為 newSchema.xml、newRule.xml放于 conf 目錄下。2、修改 newSchema.xml 和 newRule.xml 配置文件為擴容縮容后的 mycat配置參數(shù)(表的節(jié)點數(shù)、數(shù)據(jù)源、路由規(guī)則)。注意:只有節(jié)點變化
37、的表才會進行遷移。僅分片配置變化不會遷移。25時間數(shù)據(jù)遷移前數(shù)據(jù)dn03,6dn11,4dn32,5遷移后數(shù)據(jù)dn02,4,6dn11,3,5newSchema.xml改成(減少了一個節(jié)點):newRule.xml 修改count 個數(shù)3、修改 conf 目錄下的 migrateTperties配置文件,告訴工具哪些表需要進行擴容或縮容,沒有出現(xiàn)在此配置文件的 schema 表不會進行數(shù)據(jù)遷移,格式:注意,1)不遷移的表,不要修改dn 個數(shù),否則會報錯。 2)ER 表,因為只有主表有分片規(guī)則,子表不會遷移。4、dataMigrate.sh 中這個必須要配置通 過 命 令 find/-named
38、ump 查 找bin 路徑為/usr/bin/dump路 徑 為/usr/bysqldump,指定#26#bin 路徑RUN_CMD=$RUN_CMD -Bin= /usr/bin/catmall=sharding-by-mod25、停止mycat 服務6、執(zhí)行執(zhí)行 bin/ dataMigrate.sh注意:必須要配置Java 環(huán)境變量,不能用openjdk7 、執(zhí)行完成, 如果最后的數(shù)據(jù)遷移驗證通過, 就可以將之前的newSchema.xml 和 newRule.xml 替換之前的 schema.xml件,并重啟 mycat 即可。和rule.xml文注意事項:保證分片表遷移數(shù)據(jù)前后路由規(guī)
39、則一致(取模取模)。保證分片表遷移數(shù)據(jù)前后分片字段一致。全局表將被忽略。4)不要將片表配置到migrateTperties 文件中。5)暫時只支持分片表使用migrate 限制比較多,還可以使用作為數(shù)據(jù)源的擴容縮容。dump。5.2dump 方式系統(tǒng)第一次上線,把單遷移到Mycat,也可以用dump。導出-c 代表帶列名-t 代表只要數(shù)據(jù),不要建表語句-skip-extended-insert 代表生成多行 insert(mycat childtable 不支持多行27dump -uroot -p123456 -h -P3306 -c -t -skip-extended-insert gpca
40、t -1017.sqlChildTable multi insert not provided)Mycat 導入Mycat 導出其他導入方式:load data local infile /mycat/customer.txto table customer;sourql /mycat/customer.sql;6流程總結(jié)28官網(wǎng)的架構(gòu)圖:dump -h51 -uroot -p123456 -P8066 -c -t -skip-extended-insert catmall customer mycat-cust.sql-uroot -p123456 -h -P8066 catmall -10
41、17.sql6.1啟動1、MycatServer 啟動,配置文件,包括服務器、分片規(guī)則等2、創(chuàng)建工作線程,建立前端連接和后端連接執(zhí)行 SQL6.21、前端連接接收命令2、3、獲取路由4、改寫,Mycat 用的是 Druid 的DruidParser,例如兩個條件在兩個節(jié)點上,則變成兩條單獨的SQL例如select * from customer where id in(5000001, 10000001);改寫成:select * from customer where id = 5000001;(dn2 執(zhí)行) select * from customer where id = 10000001;(dn3 執(zhí)行)296、發(fā)送SQL 語句到7、獲取返回結(jié)果執(zhí)行8、處理返回結(jié)果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025室內(nèi)涂料承包合同樣本
- 2025二手房屋買賣合同范本版本
- 商業(yè)地產(chǎn)抵押合同范本
- 電商行業(yè)市場調(diào)研問卷
- 農(nóng)業(yè)種植養(yǎng)殖綜合開發(fā)利用協(xié)議
- 農(nóng)業(yè)環(huán)境保護綜合治理措施手冊
- 設備監(jiān)控與遠程管理操作指南
- 城北區(qū)電梯安全管理人員摸底考試卷庫和答案
- 吊籃凹槽施工方案
- 2025年小學英語畢業(yè)考試模擬卷(筆試綜合)-英語閱讀理解能力鞏固挑戰(zhàn)實戰(zhàn)挑戰(zhàn)訓練挑戰(zhàn)
- 蘇教版三年級下冊口算題大全(全冊完整14份)
- 漢語教程第二冊(上)課后習題與講解
- 第四章特殊兒童的基本概況
- 激光切割機日常點檢表
- 基本公共衛(wèi)生服務項目自查自評報告2
- GB/T 7307-200155°非密封管螺紋
- GB 13094-2007客車結(jié)構(gòu)安全要求
- 部編人教版五年級語文下冊第三單元優(yōu)秀課件
- 5G網(wǎng)絡切片技術課件
- 帶狀皰疹及后遺神經(jīng)痛科普課件
- 肺動脈高壓的指南分類及精選課件
評論
0/150
提交評論