素材牛VIP会员
多服务器mysql数据库如何联合查询?
 天***月  分类:SQL代码  人气:1031  回帖:3  发布于6年前 收藏

因为数据库渐渐有点大,所以想实现多服务器多数据库部署,那么问题来了,以前同在一个服务器一个数据库中,可以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上获取用户的姓名?

 标签:mysql

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv7 码师
陌***4 软件测试工程师 6年前#1

基于MySQL的federated引擎的建表方式。

建表语句示例:CREATE TABLE table_name(......) ENGINE =FEDERATED CONNECTION='mysql://[username]:[password]@[location]:[port]/[db-name]/[table-name]'

前提条件:你的mysql得支持federated引擎(执行show engines;可以看到是否支持)

Lv1 新人
风***扬 Web前端工程师 6年前#2

那就不能用left join等联合查询了,可以有几种方式
一种是可以把联合查询分开多个子句,然后进行查询拼接;
另一种就是把相关连的表放在同一个database中
或者 可以在user_track中加一定的冗余字段name,这样也就可以直接获取到了,从而不用联合查询了

Lv5 码农
zh***23 PHP开发工程师 6年前#3

你这必要么?非搞两个数据库

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取