2 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
我可以為您的方案考慮四種可能的解決方法:
查詢外部表時(shí),請(qǐng)使用完全限定的表名。MySQL支持
dbname.tablename
-syntax訪問(wèn)當(dāng)前數(shù)據(jù)庫(kù)范圍之外的表。這要求當(dāng)前連接的用戶具有從另一個(gè)物理數(shù)據(jù)庫(kù)中的請(qǐng)求表中讀取的適當(dāng)權(quán)限。如果您的外部數(shù)據(jù)庫(kù)在不同的MySQL服務(wù)器上運(yùn)行(在同一臺(tái)計(jì)算機(jī)上或通過(guò)網(wǎng)絡(luò)連接),則可以使用復(fù)制來(lái)不斷更新遠(yuǎn)程表的只讀副本。僅當(dāng)您運(yùn)行兩個(gè)單獨(dú)的MySQL實(shí)例時(shí)才可以進(jìn)行復(fù)制。
使用
FEDERATED
MySQL存儲(chǔ)引擎將表虛擬導(dǎo)入到當(dāng)前數(shù)據(jù)庫(kù)中。CREATE TABLE
當(dāng)使用FEDERATED
存儲(chǔ)引擎時(shí),使用-statement 給出憑據(jù),從而提高了將當(dāng)前用戶訪問(wèn)權(quán)限授予第二個(gè)數(shù)據(jù)庫(kù)的要求。這也適用于在不同物理服務(wù)器或不同MySQL實(shí)例上運(yùn)行的數(shù)據(jù)庫(kù)。我認(rèn)為這將是性能最差的選項(xiàng),并且確實(shí)存在一些限制 -根據(jù)您的使用場(chǎng)景和要求,或多或少地重要。這是方法1的擴(kuò)展。您不必每次在從外部表中請(qǐng)求信息時(shí)都必須指定完全限定的表名,而只需在simple的基礎(chǔ)上創(chuàng)建一個(gè)視圖即可
SELECT <<columns>> FROM <<database>>.<<table>>
。這類似于FEDERATED
-method的工作方式,但僅限于同一MySQL實(shí)例上的表。
我個(gè)人認(rèn)為方法(4)最有用-但其他方法也可能是變通辦法,具體取決于您的要求。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
目前沒(méi)有MySQL等價(jià)方法,請(qǐng)參閱這篇文章。但是,正如發(fā)布者所建議的,如果數(shù)據(jù)庫(kù)位于同一臺(tái)計(jì)算機(jī)上,則可以通過(guò)在表名前面添加數(shù)據(jù)庫(kù)名來(lái)解決。
另請(qǐng)參閱本,這是6歲,但仍然沒(méi)有得到解決。它已關(guān)閉,可能不在他們的待辦事項(xiàng)列表中。
添加回答
舉報(bào)