问题:为什么在并行执行时连接几乎空表的查询的MySQL性能会下降?
下面是我正面临的问题的更详细解释.我在MySQL中有两个表
CREATE TABLE first (
num int(10) NOT NULL,
UNIQUE KEY key_num (num)
) ENGINE=InnoDB
CREATE TABLE second (
num int(10) NOT NULL,
num2 int(10) NOT NULL,
UNIQUE KEY key_num (num, num2)
) ENGINE=InnoDB
Run Code Online (Sandbox Code Playgroud)
第一个包含大约一千条记录.第二个是空的或包含很少的记录.它还包含双重索引,它在某种程度上与问题有关:单个索引的问题就消失了.现在我试图并行地对这些表进行大量相同的查询.每个查询如下所示:
SELECT first.num
FROM first
LEFT JOIN second AS second_1 ON second_1.num = -1 # non-existent key
LEFT JOIN second AS second_2 ON second_2.num = -2 # non-existent key
LEFT JOIN second AS second_3 ON second_3.num = -3 # non-existent key
LEFT JOIN second …Run Code Online (Sandbox Code Playgroud)