哪个更快?组合或多个查询?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个更快?组合或多个查询?相关的知识,希望对你有一定的参考价值。

在使用1 million record的表格中,这些查询与性能有什么不同?

idPRIMARY

useridINDEXED

nameUNIQUE

组合查询:

$Query = 'SELECT name, (SELECT EXISTS (SELECT id FROM reports WHERE userid = 1)) AS status 
FROM users 
WHERE id = 1 
LIMIT 1';

$stmt->prepare($Query);
$stmt->execute();
$row = $stmt->fetch();

$name = $row['name'];
$status = $row['status'];

多个查询:

1

$Query = 'SELECT name
FROM users 
WHERE id = 1 
LIMIT 1';

$stmt->prepare($Query);
$stmt->execute();
$row = $stmt->fetch();

$name = $row['name'];

2

$Query = 'SELECT EXISTS (SELECT id FROM reports WHERE userid = 1)';
$stmt->prepare($Query);
$stmt->execute();
$status = $stmt->fetchColumn();
答案

在第二个版本中,mysql必须编译,解析和执行两个查询。在第一个中,只需要编译,解析和执行一个查询。

停在那里。您认为哪个更快?大概多少钱?

与所有性能问题一样,您可以自己尝试一下,看看哪个更快。

运行这些简单查询的开销非常重要。如果你关心性能,你需要一个关于users(id, name)reports(userid)的索引。由于运行查询的开销,第一个查询应该更快。

以上是关于哪个更快?组合或多个查询?的主要内容,如果未能解决你的问题,请参考以下文章