亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解mysql跨庫(kù)查詢解決方案

 更新時(shí)間:2022年08月05日 11:54:14   作者:fx9590  
本文主要介紹了mysql跨庫(kù)查詢解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1.第一種跨庫(kù)查詢,是在同一個(gè)mysql服務(wù)器下兩個(gè)不同的數(shù)據(jù)庫(kù)之間的聯(lián)查,關(guān)系如下圖

在這里插入圖片描述

在同一個(gè)mysql服務(wù)器下,不同的兩個(gè)數(shù)據(jù)直接加上庫(kù)名就可以實(shí)現(xiàn)跨庫(kù)查詢了

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

在這里插入圖片描述

執(zhí)行sql查詢到一下結(jié)果

在這里插入圖片描述

2.第二種跨庫(kù)查詢,是在兩臺(tái)不同服務(wù)器(物理服務(wù)器)上分別安裝的mysql服務(wù)器,實(shí)現(xiàn)跨庫(kù)查詢,其實(shí)現(xiàn)原理類似一個(gè)虛擬映射,需要用到mysql的另一個(gè)存儲(chǔ)引擎Federated,F(xiàn)EDERATED存儲(chǔ)引擎訪問(wèn)在遠(yuǎn)程數(shù)據(jù)庫(kù)的表中的數(shù)據(jù),而不是本地的表。

這個(gè)特性給某些開(kāi)發(fā)應(yīng)用帶來(lái)了便利,你可以直接在本地構(gòu)建一個(gè)federated表來(lái)連接遠(yuǎn)程數(shù)據(jù)表,配置好了之后本地表的數(shù)據(jù)可以直接跟遠(yuǎn)程數(shù)據(jù)表同步。實(shí)際上這個(gè)引擎里面是不真實(shí)存放數(shù)據(jù)的,所需要的數(shù)據(jù)都是連接到其他MySQL服務(wù)器上獲取。

mysql默認(rèn)沒(méi)有開(kāi)啟federated存儲(chǔ)引擎,需要在配置文件里面開(kāi)啟;

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

如下圖:

在這里插入圖片描述

#輸入命令查看引擎開(kāi)啟狀態(tài)
show engines;

可以看到,已經(jīng)開(kāi)啟了

在這里插入圖片描述

然后就可在test1數(shù)據(jù)庫(kù)上創(chuàng)建虛擬表了,將test2庫(kù)上t_test2表映射到test1庫(kù)上面

CREATE TABLE `t_test2` (
  `id` int NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='遠(yuǎn)程測(cè)試表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' 這個(gè)配置是關(guān)鍵
root:代表遠(yuǎn)程數(shù)據(jù)庫(kù)的用戶
123456:代表遠(yuǎn)程數(shù)據(jù)的密碼
127.0.0.1:代表遠(yuǎn)程數(shù)據(jù)庫(kù)的ip地址,域名也可以
test2:代表遠(yuǎn)程數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)名稱
t_test2:代表遠(yuǎn)程數(shù)據(jù)庫(kù)中的哪一張表
**/

執(zhí)行sql語(yǔ)句

在這里插入圖片描述

可以看到創(chuàng)建了一張t_test2的表,這張表其實(shí)不存在只是一個(gè)遠(yuǎn)程的映射而已

在這里插入圖片描述

可以看到使用FEDERATED引擎

在這里插入圖片描述

表創(chuàng)建完成后就可以寫sql了

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

可以看到執(zhí)行結(jié)果

在這里插入圖片描述

federated使用注意事項(xiàng):

1.本地創(chuàng)建的表名必須在遠(yuǎn)程服務(wù)器存在,創(chuàng)建的字段也必須是遠(yuǎn)程表中的字段,可以比遠(yuǎn)程表的字段少,但是不能多,本地存儲(chǔ)引擎選擇

2.對(duì)本地虛擬表的結(jié)構(gòu)修改,并不會(huì)修改遠(yuǎn)程表的結(jié)構(gòu) 

3.truncate 命令,會(huì)清除遠(yuǎn)程表數(shù)據(jù) 

4.drop命令只會(huì)刪除虛擬表,并不會(huì)刪除遠(yuǎn)程表

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

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

 到此這篇關(guān)于詳解mysql跨庫(kù)查詢解決方案的文章就介紹到這了,更多相關(guān)mysql跨庫(kù)查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql數(shù)據(jù)庫(kù)基本語(yǔ)法及操作大全

    mysql數(shù)據(jù)庫(kù)基本語(yǔ)法及操作大全

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)基本語(yǔ)法及操作大全,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 新手把mysql裝進(jìn)docker中碰到的各種問(wèn)題

    新手把mysql裝進(jìn)docker中碰到的各種問(wèn)題

    這篇文章主要給大家介紹了新手第一次把mysql裝進(jìn)docker中可能碰到的各種問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開(kāi)窗函數(shù)

    Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開(kāi)窗函數(shù)

    lead和lag是在SQL中用于創(chuàng)建窗口函數(shù)的兩個(gè)常用函數(shù),這篇文章主要給大家介紹了關(guān)于Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開(kāi)窗函數(shù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 最新評(píng)論