为什么这两个查询之间存在时间执行的差异,即使它们从同一个表中检索相同数量的行?
const props = {};
const reader = new FileReader;
reader.onload = () => {
props["file"] = reader.result;
}
for (let [key, prop] of new FormData(form)) {
if (!prop instance of File) {
props[key] = prop;
} else {
reader.readAsDataURL(prop);
}
}
const json = JSON.stringify(props);
... ...
select cognome, nome, lingua, count(*)
from archivio.utente
where cognome in ('rossi','pecchia','pirono')
group by cognome, nome, lingua;
779行(0.03秒)
…
| Rossi | Mario | it | 1 |
| Pironi | Luigi | it | 1 |
| Pecchia | Fabio | it | 1 |
+----------------------+---------+--------+----------+
... ... ...
select cognome, nome, lingua, count(*)
from archivio.utente
where nome='corrado'
group by cognome, nome, lingua;
737行(0.47秒)
答案 0 :(得分:0)
来自mysql文档:
https://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain-join-types
当我们使用时
仅检索给定范围内的行,使用索引选择行。 输出行中的键列指示使用哪个索引。
当我们使用=
时对每个行组合
进行全表扫描因此在一种情况下,所有行都被检索和比较,在另一种情况下只是一个范围。