多服务器mysql数据库如何联合查询?

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

阅读 9.3k
3 个回答

那就不能用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;可以看到是否支持)

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题