查询两个表之间的慢度



如果有一个结果匹配"parent_ id">在我的"strong>"中;表1"和";表2">表中的行数,我想得到"表1">表格。

但是SQL查询花费的时间太长

表1中有10000行

表2中有40000行

供您尝试的表数据文件请参阅:https://pastebin.pl/view/raw/ddf8c467

表格结构

CREATE TABLE table1 (id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
parent_id INT(11) UNSIGNED NOT NULL ,
tes1 INT(1) NOT NULL , PRIMARY KEY (id)) ENGINE = MyISAM;
CREATE TABLE table2 (id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
parent_id INT(11) UNSIGNED NOT NULL ,
tes2 INT(1) NOT NULL , PRIMARY KEY (id)) ENGINE = MyISAM;

我使用的SQL查询

SELECT     COUNT(A.id) AS total
FROM       table1 A
LEFT JOIN  table2 B ON A.parent_id = B.parent_id
WHERE      B.id IS NOT NULL

在表B的parent_id上创建一个索引,并在可能的情况下使用INNODB。

您也可以使用内部联接

SELECT     COUNT(A.id) AS total
FROM       table1 A
INNER JOIN  table2 B ON A.parent_id = B.parent_id;

相关内容

  • 没有找到相关文章

最新更新