PHP Mysql跨数据库连接

Dar*_*nke 10 php mysql sql join

假设我在同一台物理服务器上有两个独立的数据库,X和Y.

我的所有查询目前都用完X.

我发现我在YI中有一张桌子想要X可用于JOINS.

所以...现在我在X和Y中保留了X和Y所需的一个表的副本,但Y中的数据不断变化,因此副本很快就会过时.对于这个应用程序并不重要,但对于另一个我正在设计的现在,这是不会做的.

X现在只需要对Y中的表进行读访问.

是否有一种有效的方法来跨两个数据库进行连接?

我更喜欢一个mysql解决方案,而不是在php中打开多个数据库连接.

谢谢.

编辑:那么这些线路变成了什么?:

$conn = mysql_connect('localhost','username','password');
@mysql_select_db('database_name',$conn)
Run Code Online (Sandbox Code Playgroud)

是的..这是一个旧的应用程序,因此mysql而不是mysqli.假设我可以转换它.

编辑2:所以我没有指定database_name.table_name,只是指定table_name我得到任何选择,我指定database.table_name我得到我要求的...对吗?是的.作品.

编辑方式3:跨数据库连接与同一数据库中的连接相比,是否有重大的性能损失?不.看起来同样快.

谢谢大家的回复.

lon*_*eck 13

您必须在其他数据库中为该表添加别名:

select a.id
     , b.foreign_id
  from database1.table1 a
  join database2.table1 b
    on b.foreign_id = a.id
Run Code Online (Sandbox Code Playgroud)


Jak*_*kub 2

编辑:那么这些行会变成什么呢?:

$conn = mysql_connect('localhost','用户名','密码'); @mysql_select_db('数据库名称',$conn)

mysql_select_db 是可选的。因为它只是选择要使用的活动数据库。 https://www.php.net/manual/en/function.mysql-select-db.php

是的..这是一个旧的应用程序,因此使用 mysql 而不是 mysqli。假设我可以转换它。

恕我直言,我不认为使用 MYSQL 与速度慢有任何关系,根据我自己的研究,MYSQLi 与 MYSQL 相比并没有太大的速度改进。现实世界的测试并未表明这是一个重要的性能驱动因素。老实说,我所有的应用程序都坚持使用 MYSQL。