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

 mobiledu2502857827 发布于 2022-11-04 22:28

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

3 个回答
  • 基于MySQL的federated引擎的建表方式。

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

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

    2022-11-12 01:52 回答
  • 你这必要么?非搞两个数据库

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

    2022-11-12 01:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有