Mycat2 UnionAll

2021-09-09 16:11 更新

在不跨數(shù)據(jù)庫的情況下,涉及到多個(gè)分表合拼的時(shí)候,可以有多個(gè)選擇,常用的是在Mycat中開啟多個(gè)后端連接然后使用把返回的行匯總在一起或者在數(shù)據(jù)庫中使用集合運(yùn)算把分表的數(shù)據(jù)匯總.上述兩種,Mycat2都支持.

在同一個(gè)數(shù)據(jù)庫上涉及多個(gè)分表,Mycat2會(huì)使用union all語法把多個(gè)生成的SQL連接起來生成一個(gè)新的SQL讓數(shù)據(jù)庫執(zhí)行.

Mycat2可以配置生成的每個(gè)SQL中出現(xiàn)union all的數(shù)量,默認(rèn)值是5個(gè),它可以匯總6個(gè)SQL(表),假如一年分12個(gè)表,5個(gè)union all可以匯總半年數(shù)據(jù).

在數(shù)據(jù)庫中的union all實(shí)際運(yùn)行效率取決于存儲(chǔ)節(jié)點(diǎn)的實(shí)現(xiàn),而不使用union all匯總的數(shù)據(jù)使用多個(gè)連接并行查詢匯總或者一個(gè)連接依次讀取行數(shù)據(jù)匯總.

另外,union all可以大大減少后端數(shù)據(jù)庫連接的使用量.

每個(gè)sql使用的union all數(shù)量可以在server的配置中更改

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)