【发布时间】:2010-12-13 02:50:06
【问题描述】:
假设我在同一物理服务器上有两个独立的数据库 X 和 Y。
我的所有查询目前都用完了 X。
我发现我在 Y 中有一个表,我希望 X 可以使用它进行 JOINS。
所以...现在我在 X 和 Y 中保留了一张我需要的 X 和 Y 表的副本,但是 Y 中的数据不断变化,因此该副本很快就会过时。对于这个应用程序来说并不重要,但对于我现在正在设计的另一个应用程序来说,这是行不通的。
X 现在只需要读取 Y 中的表。
有没有一种有效的方法来跨两个数据库进行连接?
我更喜欢 mysql 解决方案,而不是在 php 中打开多个数据库连接。
谢谢。
编辑:那么这些行会变成什么?:
$conn = mysql_connect('localhost','username','password');
@mysql_select_db('database_name',$conn)
是的.. 这是一个旧应用程序,因此使用 mysql 而不是 mysqli。假设我可以转换它。
EDIT2:所以在我没有指定database_name.table_name 并且只指定table_name 的地方,我得到了选择的任何内容,而在我指定database.table_name 的地方,我得到了我所要求的......对吗?是的。有效。
EDIT3:跨数据库连接与同一数据库内的连接相比,是否会对性能产生重大影响?没有。看起来一样快。
感谢大家的回复。
【问题讨论】:
-
这些行保持不变。您仍然必须使用 mysql_select_db(),因为 mysql 在执行查询之前需要一个活动的 db/schema。
-
mysql_select_db() 实际上不是必需的。它只是设置活动的默认数据库,你可以不用它,如果你指定
db.table