mysql之跨庫(kù)關(guān)聯(lián)查詢(dblink)問(wèn)題
1、解決方案
mysql是不支持跨庫(kù)連接的,如果我們實(shí)在要連接的話可以用dblink方式。
解釋:
dblink就是我們?cè)趧?chuàng)建表的時(shí)候連接到我們的遠(yuǎn)程庫(kù),然后我們本地新建的表數(shù)據(jù)就是映射遠(yuǎn)程的表的數(shù)據(jù)。
當(dāng)我們創(chuàng)建一個(gè)以FEDERATED為存儲(chǔ)引擎的表時(shí),服務(wù)器在數(shù)據(jù)庫(kù)目錄只創(chuàng)建一個(gè)表定義文件。
文件由表的名字開(kāi)始,并有一個(gè)frm擴(kuò)展名。
無(wú)其它文件被創(chuàng)建,因?yàn)閷?shí)際的數(shù)據(jù)在一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)上。這不同于為本地表工作的存儲(chǔ)引擎的方式。
如我現(xiàn)在本地要連接我的阿里云的sys_user表
所以我需要在本地建一個(gè)相同字段的表,我取名叫sys_user_copy,并連接到遠(yuǎn)程庫(kù)
建好后,我本地sys_user_copy的表里面的數(shù)據(jù)是映射遠(yuǎn)程的表的數(shù)據(jù)
所以我關(guān)聯(lián)查詢,可以直接關(guān)聯(lián)我本地sys_user_copy表從而查出來(lái)。
改了本地的數(shù)據(jù),遠(yuǎn)程的表數(shù)據(jù)也會(huì)跟著變
2、操作
1、開(kāi)啟FEDERATED引擎
show engines
如果這里是NO,需要在配置文件[mysqld]中加入一行:federated
改完重啟服務(wù),就變成yes了。
2、建表時(shí)加上連接
CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://username:password@hostname:port/database/tablename'
這樣即可。
3、缺點(diǎn)
1、本地表結(jié)構(gòu)必須與遠(yuǎn)程表完全一樣
2、不支持事務(wù)
3、不支持表結(jié)構(gòu)修改
4、刪除本地表,遠(yuǎn)程表不會(huì)刪除5、遠(yuǎn)程服務(wù)器必須是一個(gè)MySQL服務(wù)器
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解MySQL事務(wù)的ACID如何實(shí)現(xiàn)
事務(wù)(Transaction)是并發(fā)控制的基本單位,所謂的事務(wù)呢,它是一個(gè)操作序列,這些操作要么都執(zhí)行,要么都不執(zhí)行,它是一個(gè)不可分割的工作單位,本文給大家詳細(xì)介紹了MySQL事務(wù)的ACID如何實(shí)現(xiàn),需要的朋友可以參考下2023-10-10mysql最大連接數(shù)設(shè)置技巧總結(jié)
在本篇文章里小編給大家分享了關(guān)于mysql最大連接數(shù)設(shè)置的相關(guān)知識(shí)點(diǎn)和技巧,需要的朋友們學(xué)習(xí)下。2019-03-03MySQL存儲(chǔ)過(guò)程使用實(shí)例詳解
本文介紹關(guān)于在MySQL存儲(chǔ)過(guò)程游標(biāo)使用實(shí)例,包括簡(jiǎn)單游標(biāo)使用與游標(biāo)循環(huán)跳出等方法2013-11-11使用sysbench來(lái)測(cè)試MySQL性能的詳細(xì)教程
這篇文章主要介紹了使用sysbench來(lái)測(cè)試MySQL性能的詳細(xì)教程,包括介紹了從sysbench的編譯安裝到初始化測(cè)試庫(kù)環(huán)境等一系列操作,需要的朋友可以參考下2015-05-05