两个表之间的查询缓慢

Query Slowness Between Two Tables

如果在我的"table1"中有符合"parent_id"值的结果]和"table2" tables,我想获取"table1"中的行数 table.

但是SQL查询时间太长。

table1.

中有 10 万

table2 中有 4 万 行。

一个table数据文件给你试试 参见:https://pastebin.pl/view/raw/ddf8c467

Table结构

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

在 table B 上的 parent_id 上创建索引,并尽可能使用 INNODB。

你也可以使用内连接

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