search
HomeDatabaseMysql TutorialHow to solve mysql cross-database query problem

1. The first type of cross-database query is a joint query between two different databases under the same mysql server. The relationship is as shown below

How to solve mysql cross-database query problem

in the same Under a mysql server, two different data can be directly added to the database name to achieve cross-database query

select * from t_test1 t1, test2.t_test2 t2 where t1.id = t2.id

How to solve mysql cross-database query problem

Execute sql query to get the results

How to solve mysql cross-database query problem

2. The second type of cross-database query is a mysql server installed on two different servers (physical servers) to implement cross-database query. The implementation principle is similar to a virtual mapping and needs to be used Federated, another storage engine of mysql, FEDERATED storage engine accesses data in tables in remote databases instead of local tables.

This feature brings convenience to some development applications. You can directly build a federated table locally to connect to the remote data table. After configuration, the data in the local table can be directly synchronized with the remote data table. In fact, this engine does not actually store data. The data it needs is obtained by connecting to other MySQL servers.

mysql does not enable the federated storage engine by default and needs to be enabled in the configuration file;

#在[mysqld] 下 添加 federated 然后重启mysql服务就可以了
[mysqld]
federated

As shown below:

How to solve mysql cross-database query problem

#输入命令查看引擎开启状态
show engines;

can be seen , has been turned on

How to solve mysql cross-database query problem

Then you can create a virtual table on the test1 database, map the t_test2 table on the test2 library to the test1 library

CREATE TABLE `t_test2` (
  `id` int NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='远程测试表t_test2' CONNECTION='mysql://root:123456@127.0.0.1:3306/test2/t_test2' ;
/**

CONNECTION='mysql://root:123456$@127.0.0.1:3306/test2/t_test2' 这个配置是关键
root:代表远程数据库的用户
123456:代表远程数据的密码
127.0.0.1:代表远程数据库的ip地址,域名也可以
test2:代表远程数据库的数据库名称
t_test2:代表远程数据库中的哪一张表
**/

Execute sql statement

How to solve mysql cross-database query problem

You can see that a table t_test2 is created. This table does not actually exist, it is just a remote mapping

How to solve mysql cross-database query problem

You can see using the FEDERATED engine

How to solve mysql cross-database query problem

After the table is created, you can write sql

select * from t_test1 t1, t_test2 t2 where t1.id = t2.id

You can see the execution results

How to solve mysql cross-database query problem

federated usage notes:

1. The locally created table name must exist on the remote server, and the created fields must also be fields in the remote table, which can be compared to The remote table has fewer fields, but not more. Select the local storage engine

2. Modifying the structure of the local virtual table will not modify the structure of the remote table

3. The truncate command will Clear remote table data

4. The drop command will only delete the virtual table and not the remote table

5. Execute statements such as select count(*), select * from limit M, N The efficiency is very low, and there are serious problems when the amount of data is large. However, querying by primary key or index column is very fast. For example, the following query is very slow (assuming id is the main index)

select id from db.tablea where id >100 limit 10 ;

The above is the detailed content of How to solve mysql cross-database query problem. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:亿速云. If there is any infringement, please contact admin@php.cn delete
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),