mySQL 跨数据库子查询/连接?

标签 mysql innodb myisam

我有大约 3300 万条记录的结果集。

我需要删除基于另一个基于 ID 的大约 1000 万条记录的结果集的任何记录。

这应该可以解决问题,但是由于 db1 是 myISAM,所以速度太慢了:

SELECT id
FROM db1.table1
WHERE id NOT IN (
  SELECT id
  FROM db1.table2
) AS result
ORDER BY id

我有第二个数据库,它具有相同的数据,但 InnoDB 引擎可提供 3200 万个大结果。可能的?这有点超出我的范围。欢迎任何/所有建议。

SELECT id
FROM db2.table1
WHERE id NOT IN (
  SELECT id
  FROM db1.table2
) AS result
ORDER BY id

最佳答案

只要所有数据库都存在于同一主机上 - 是的,这没问题,您可以加入多个数据库(假设您有足够的权限来访问所有这些表)。

直接尝试而不是在这里提问不是更容易吗?还是我错过了什么?

关于mySQL 跨数据库子查询/连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6552699/

相关文章:

php - 从登录 SQL 表中获取用户 ID

MySQL - 如何在不使用 AUTO_INCRMENT 的情况下添加唯一的 INT 值?

mysql - MyISAM 锁定大型 select 语句

MySQL 高级求和查询

php - 下拉选择更改时更新表数据

sql - 使用 InnoDB 进行全文搜索

mysql - "query end"随机时间步长

mysql - MySql 中哪种存储引擎最好?

mysql - 讨论板数据库的存储引擎

mysql - 在 MySql 中一次获取 15 个表结果的更好方法