mysql - 使用相同模式查询数千个 MySQL 数据库

标签 mysql database scalability

我有一个问题,在过去的几个月里一直困扰着我。我在同一台服务器上有数万个 MySQL 数据库,所有数据库都具有相同的架构。我希望能够查询所有这些并获得结果列表。目前,我正在使用 PHP 脚本循环遍历每个数据库并对每个数据库执行查询。有时这可能需要很长时间(10 分钟以上),因此这显然不是最佳解决方案。

这是我想做的一个例子:

从 db_prefix_*.tablename 中选择某些内容,其中某些内容 = 1;

...并让它返回一组结果,db_prefix_* 是数据库的名称。

这样的事情真的存在还是我在做梦?

这个问题可能会变得更加复杂,因为我将把这些数据库移动到多个服务器,但当我到达那里时我会穿过那条路。

最佳答案

这是您正在寻找的东西吗:

DECLARE @sqlQuery nvarchar(MAX)
SET @sqlQuery=''
select @sqlQuery=@sqlQuery+'select something from '+ SCHEMA_NAME  +'.tableName' from INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME LIKE 'db_prefix_%'
print @sqlQuery
EXEC sp_executeSQL @sqlQuery

我有 SQL Server 背景,我已经尽力翻译 MySQL,如果这里有不正确的地方,请纠正我。

关于mysql - 使用相同模式查询数千个 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7925884/

相关文章:

php - 如何扩展 PHP

php - 复杂的 MySQL 数据库查询

PHP MYSQL 在日期之间选择

mysql - 如何通过socket连接访问数据库? (带 DataGrip)

php - PHP/MySQL 数据库查询究竟是如何工作的?

php - 如何在 Doctrine2 中使用带有数组 IN 参数的 native 查询

python - Celery 和 Django 简单示例

java - 现实世界从 Java 文件中读取

c# - 将 ADO.Net 实体数据模型向导连接到 MySQL 数据库

MySQL 限制/偏移 : get all records except the first X