因为数据库渐渐有点大,所以想实现多服务器多数据库部署,那么问题来了,以前同在一个服务器一个数据库中,可以left join查询,现在该怎么查询呢?
例如
192.168.1.11 db1.user(id,name,email) 为用户主表
192.168.1.12 db2.user_track(id,user_id,create_at) 为用户详细的点击访问跟踪记录
如何能在192.168.1.12上获取用户的姓名?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
那就不能用left join等联合查询了,可以有几种方式
一种是可以把联合查询分开多个子句,然后进行查询拼接;
另一种就是把相关连的表放在同一个database中
或者 可以在user_track中加一定的冗余字段name,这样也就可以直接获取到了,从而不用联合查询了
你这必要么?非搞两个数据库
基于MySQL的federated引擎的建表方式。
建表语句示例:CREATE TABLE
table_name(......) ENGINE =FEDERATED CONNECTION='mysql://[username]:[password]@[location]:[port]/[db-name]/[table-name]'前提条件:你的mysql得支持federated引擎(执行show engines;可以看到是否支持)