中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

mysql跨庫查詢問題如何解決

發布時間:2022-08-05 16:03:57 來源:億速云 閱讀:251 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“mysql跨庫查詢問題如何解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“mysql跨庫查詢問題如何解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

1.第一種跨庫查詢,是在同一個mysql服務器下兩個不同的數據庫之間的聯查,關系如下圖

mysql跨庫查詢問題如何解決

在同一個mysql服務器下,不同的兩個數據直接加上庫名就可以實現跨庫查詢了

select * from t_test1 t1, test2.t_test2 t2 where t1.id = t2.id

mysql跨庫查詢問題如何解決

執行sql查詢到一下結果

mysql跨庫查詢問題如何解決

2.第二種跨庫查詢,是在兩臺不同服務器(物理服務器)上分別安裝的mysql服務器,實現跨庫查詢,其實現原理類似一個虛擬映射,需要用到mysql的另一個存儲引擎Federated,FEDERATED存儲引擎訪問在遠程數據庫的表中的數據,而不是本地的表。

這個特性給某些開發應用帶來了便利,你可以直接在本地構建一個federated表來連接遠程數據表,配置好了之后本地表的數據可以直接跟遠程數據表同步。實際上這個引擎里面是不真實存放數據的,所需要的數據都是連接到其他MySQL服務器上獲取。

mysql默認沒有開啟federated存儲引擎,需要在配置文件里面開啟;

#在[mysqld] 下 添加 federated 然后重啟mysql服務就可以了
[mysqld]
federated

如下圖:

mysql跨庫查詢問題如何解決

#輸入命令查看引擎開啟狀態
show engines;

可以看到,已經開啟了

mysql跨庫查詢問題如何解決

然后就可在test1數據庫上創建虛擬表了,將test2庫上t_test2表映射到test1庫上面

CREATE TABLE `t_test2` (
  `id` int NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='遠程測試表t_test2' CONNECTION='mysql://root:123456@127.0.0.1:3306/test2/t_test2' ;
/**

CONNECTION='mysql://root:123456$@127.0.0.1:3306/test2/t_test2' 這個配置是關鍵
root:代表遠程數據庫的用戶
123456:代表遠程數據的密碼
127.0.0.1:代表遠程數據庫的ip地址,域名也可以
test2:代表遠程數據庫的數據庫名稱
t_test2:代表遠程數據庫中的哪一張表
**/

執行sql語句

mysql跨庫查詢問題如何解決

可以看到創建了一張t_test2的表,這張表其實不存在只是一個遠程的映射而已

mysql跨庫查詢問題如何解決

可以看到使用FEDERATED引擎

mysql跨庫查詢問題如何解決

表創建完成后就可以寫sql了

select * from t_test1 t1, t_test2 t2 where t1.id = t2.id

可以看到執行結果

mysql跨庫查詢問題如何解決

federated使用注意事項:

1.本地創建的表名必須在遠程服務器存在,創建的字段也必須是遠程表中的字段,可以比遠程表的字段少,但是不能多,本地存儲引擎選擇

2.對本地虛擬表的結構修改,并不會修改遠程表的結構 

3.truncate 命令,會清除遠程表數據 

4.drop命令只會刪除虛擬表,并不會刪除遠程表

5.select count(*), select * from limit M, N 等語句執行效率非常低,數據量較大時存在很嚴重的問題,但是按主鍵或索引列查詢,則很快,如以下查詢就非常慢(假設 id   為主索引)

select id from db.tablea where id >100 limit 10 ;

讀到這里,這篇“mysql跨庫查詢問題如何解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

江城| 平舆县| 宝鸡市| 福建省| 开封县| 沅江市| 新郑市| 正镶白旗| 彰武县| 东台市| 循化| 嘉峪关市| 山东省| 吉林省| 惠安县| 拉孜县| 西华县| 会理县| 石景山区| 武平县| 昭觉县| 荃湾区| 盖州市| 松江区| 沾化县| 宾川县| 黄陵县| 双江| 康马县| 仪陇县| 南充市| 景洪市| 济源市| 蒙城县| 苗栗县| 左贡县| 鄄城县| 三江| 西林县| 乌审旗| 大英县|