同服務(wù)器的話采用 庫名.表名就可以跨庫操作

創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站設(shè)計、成都網(wǎng)站制作、網(wǎng)頁設(shè)計開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗,各類網(wǎng)站都可以開發(fā),高端網(wǎng)站設(shè)計,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計,建網(wǎng)站費用,建網(wǎng)站多少錢,價格優(yōu)惠,收費合理。
例如數(shù)據(jù)庫schema1(含有表A)和schema2(含有表B)
在schema2中想訪問schema1的A表,直接select * from schema1.A
如果是mysql里面兩個不同的數(shù)據(jù)庫,應(yīng)該是可以直接使用 [數(shù)據(jù)庫名稱].[表名]來關(guān)聯(lián)的。TP指定的數(shù)據(jù)庫,是因為他要緩存這個數(shù)據(jù)庫的表字段等。試試看行不行,測試通過: SELECT a.*,b.* FROM table1 a LEFT JOIN db2.table2 b ON a.id=b.id
CSDN官方APP
中國專業(yè)的IT社區(qū)立即下載
CSDN首頁
博客
學院
下載
GitChat
論壇
APP
問答
商城
VIP
活動
招聘
ITeye
TinyMind
專題
Copyright ? 1999-2019,
CSDN.NET, All Rights Reserved
crimeheaven的專欄
登錄
crimeheaven關(guān)注 訪問量 6萬+ 原創(chuàng) 22 博主更多文章
轉(zhuǎn) mysql跨庫操作速度慢的解決方案
crimeheaven閱讀數(shù):24752014-03-14
遠程連接mysql速度慢的解決方法:skip-name-resolve取消DNS的反向解析
PHP遠程連接MYSQL速度慢,有時遠程連接到MYSQL用時4-20秒不等,本地連接MYSQL正常,出現(xiàn)這種問題的主要原因是,默認安裝的MYSQL開啟了DNS的反向解析,在MY.INI(WINDOWS系統(tǒng)下)或MY.CNF(UNIX或LINUX系統(tǒng)下)文件的[mysqld]下加入skip-name-resolve這一句。
但是,這樣會引起一個問題:連接mysql時,不能使用 localhost連接了,而是要使用IP地址的;如果是按localhost對用戶賦權(quán)限的話,用戶登錄權(quán)限也要修改一下的。
連接mysql速度慢的解決方法.?
2臺服務(wù)器,一臺跑iis+php,一臺跑mysql,和以往一樣配置好環(huán)境,測試頁面一切OK
跑應(yīng)用的時候發(fā)現(xiàn)php訪問mysql速度很慢,這種情況在以前從未發(fā)現(xiàn)過,雖然2臺服務(wù)器并非在同一網(wǎng)段中,但是ping數(shù)值基本上都在1,2ms之間,tcp連接應(yīng)該不是問題關(guān)健,google以后找到答案,在my.ini文件的[mysqld]部分加入:skip-name-resolve,保存文件,重啟mysql,一切OK啦,速度象飛一樣了
新版本的mysql配置起來不象以前的那個傻瓜化了,這個問題折騰了我一上午的時間,晚上回來總算是解決了,嘿嘿,又學到一些東西。?
Windows 2003下的MySQL 5服務(wù)器,本機連接到MySQL服務(wù)非常快,局域網(wǎng)內(nèi)有兩臺Linux機器,有一臺連接很快,另外一臺輸入密碼后要等好幾秒鐘才能連上。
最簡單的辦法就是用個ACCESS,無論你用什么代碼來寫,或者直接操作SQL,
如果是直接操作SQL那更簡單,他可以直接建立操作查詢,兩個地方的數(shù)據(jù)庫也可以用OpenRowSet關(guān)鍵詞來取得聯(lián)系。如果是用代碼來編譯程序做這樣的操作,我的建議是用如PetShop和直接用個ACCESS來做跨數(shù)據(jù)庫的數(shù)據(jù)表操作。
ACCESS直接做遠程網(wǎng)絡(luò)連接表(SQL遠程數(shù)據(jù)庫可以是任意地方的,只樣能與當前主機能PING上)在ACCESS里做查詢語句,或者直接做一個更新查詢,代碼調(diào)用的時候直接查詢更新查詢就達到了你的目的。如果是不借助ACCESS或者是借助ACCESS要用純代碼也有辦法:
一個是用ACCESS的ODBC()庫功能他的表結(jié)構(gòu)是:
Select * from 表名 IN ODBC[ODBC:Driver={SQL Server};Server=服務(wù)器IP地址;UID=數(shù)據(jù)庫用戶名;PWD=密碼;DataBase=數(shù)據(jù)庫名稱]
你把上面的查詢當成一個表,把要插入的表和目的表用上面的格式寫下來,拼接字符串就達到了目的。
OpenROWSET是SQL官方提供的一種辦法,兩個異地數(shù)據(jù)庫,可以用OPENROWSET關(guān)鍵字來做連接,網(wǎng)上代碼多的是。
PETSHOP是.Net提供的一種方法,直接用.NET連接數(shù)據(jù)庫,用PETSHOP象ACCESS查詢視圖一樣做查詢表,但是我覺得這樣做不好,程序運行效率低,而且相當不靈活。
一個表更新到另一個表要做更新檢查,一邊插入查詢以便做連接查詢匹配沒有的數(shù)據(jù)才可以查詢,重復(fù)的不允許插入,代碼這么寫:
INSERT INTO 目的表 SELECT 字段名稱, 字段名稱1, ... FROM 處理表 INNER JOIN 目的表 ON 處理表.匹配字段=目的表.匹配字段 WHERE ((目的表.字段) IS NULL)
把篩選好的表插入你的目的表,數(shù)據(jù)庫問題解決了,插入檢查還要解決啊,你琢磨一下。
1、需要當前用戶對兩個庫具備相應(yīng)的訪問和操作權(quán)限
2、通過數(shù)據(jù)庫名.表名的方式進行join
SELECT
*
FROM
db1.t1 a
INNER JOIN db2.t2 b ON a.id = b.id
WHERE
a.Id = 1;
3、建議改為es方式進行數(shù)據(jù)處理,想學java歡迎關(guān)注。
這種架構(gòu)一般用在以下三類場景
1. 備份多臺 Server 的數(shù)據(jù)到一臺如果按照數(shù)據(jù)切分方向來講,那就是垂直切分。比如圖 2,業(yè)務(wù) A、B、C、D 是之前拆分好的業(yè)務(wù),現(xiàn)在需要把這些拆分好的業(yè)務(wù)匯總起來備份,那這種需求也很適用于多源復(fù)制架構(gòu)。實現(xiàn)方法我大概描述下:業(yè)務(wù) A、B、C、D 分別位于 4 臺 Server,每臺 Server 分別有一個數(shù)據(jù)庫來隔離前端的業(yè)務(wù)數(shù)據(jù),那這樣,在從庫就能把四臺業(yè)務(wù)的數(shù)據(jù)全部匯總起來,而不需要做額外的操作。那沒有多源復(fù)制之前,要實現(xiàn)這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關(guān)聯(lián)的問題,不但性能急劇下降,管理多個實例也沒有單臺來的容易。
2. 用來聚合前端多個 Server 的分片數(shù)據(jù)。
同樣,按照數(shù)據(jù)切分方向來講,屬于水平切分。比如圖 3,按照年份拆分好的數(shù)據(jù),要做一個匯總數(shù)據(jù)展現(xiàn),那這種架構(gòu)也非常合適。實現(xiàn)方法稍微復(fù)雜些:比如所有 Server 共享同一數(shù)據(jù)庫和表,一般為了開發(fā)極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總并合并多個 Server 的數(shù)據(jù)
第三類和第一種場景類似。不一樣的是不僅僅是數(shù)據(jù)需要匯總到目標端,還得合并這些數(shù)據(jù),這就比第一種來的相對復(fù)雜些。比如圖 4,那這樣的需求,是不是也適合多源復(fù)制呢?答案是 YES。那具體怎么做呢?
網(wǎng)頁名稱:mysql跨庫怎么關(guān)聯(lián) mysql數(shù)據(jù)庫跨庫跨表連接
標題來源:http://chinadenli.net/article12/dooigdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站排名、網(wǎng)站收錄、品牌網(wǎng)站制作、企業(yè)建站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)