哪个更快?组合或多个查询?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个更快?组合或多个查询?相关的知识,希望对你有一定的参考价值。
在使用1 million record
的表格中,这些查询与性能有什么不同?
id
是PRIMARY
userid
是INDEXED
name
是UNIQUE
组合查询:
$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)
的索引。由于运行查询的开销,第一个查询应该更快。
以上是关于哪个更快?组合或多个查询?的主要内容,如果未能解决你的问题,请参考以下文章
Android SQLite:哪个查询(“query”或“rawQuery”)更快?
MongoDB:运行更快的查询,这更好 Pymongo 或 MongoEngine