哪个更快?组合查询还是多个查询?

     2023-05-09     278

关键词:

【中文标题】哪个更快?组合查询还是多个查询?【英文标题】:Which is Faster? Combined or Multiple Queries? 【发布时间】:2017-12-23 20:56:45 【问题描述】:

这些查询在 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();

【问题讨论】:

这与您 1 小时前提出的问题几乎相同:***.com/questions/47955316/… 但您对我的建议一无所知:使用EXPLAIN,自己衡量性能,至少显示SHOW CREATE TABLE 在您发布问题时用于您的表格。 【参考方案1】:

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

停在那里。你觉得哪个更快?大约是多少?

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

运行此类简单查询的开销可能非常重要。如果您关心性能,您需要在users(id, name)reports(userid) 上建立索引。由于运行查询的开销,第一个查询应该会更快。

【讨论】:

在这种情况下,越少越好。 @Toleo 。 . .作为一般规则,让数据库做尽可能多的工作是个好主意。数据库经过优化以处理复杂的查询。 (也有例外,但这是一个很好的默认习惯。)

MySQL:在 1:N 关系中哪个更快?加入还是两个查询? [复制]

】MySQL:在1:N关系中哪个更快?加入还是两个查询?[复制]【英文标题】:MySQL:Whichoneisfasterin1:Nrelationships?Joinortwoqueries?[duplicate]【发布时间】:2013-12-3103:48:12【问题描述】:考虑由main_table_id链接的两个表:http://www.zigdigital.com.br/do... 查看详情

哪个是更快的单个大查询或几个小查询?

】哪个是更快的单个大查询或几个小查询?【英文标题】:Whichoneisfastersinglebigqueryorfewsmallqueries?【发布时间】:2015-07-1204:11:52【问题描述】:所以我想从数据库中抓取数据,哪种方法更快,创建几个查询还是一个多查询?【问题... 查看详情

哪个 SQL 查询更快,为啥?

】哪个SQL查询更快,为啥?【英文标题】:WhichSQLqueryisfasterandwhy?哪个SQL查询更快,为什么?【发布时间】:2011-07-0419:40:50【问题描述】:最近,有人要求我编写一个查询,以便从包含最大数量的此类实体的组中选择实体的属性... 查看详情

哪个sql查询更快?

】哪个sql查询更快?【英文标题】:Whichsqlqueryisfaster?【发布时间】:2014-12-2511:29:56【问题描述】:我正在使用postgresql数据库并希望改进查询(第一个)。我将其重写为第二个。但是我读了一篇文章,上面说“NOTIN”是非常缓慢... 查看详情

哪个选择查询将运行得更快[重复]

】哪个选择查询将运行得更快[重复]【英文标题】:WhichSelectquerywillrunfaster[duplicate]【发布时间】:2014-12-0207:38:55【问题描述】:您好,我正在尝试从包含大约100万条记录的表中获取最大ID。请建议我在这些查询中哪一个执行得更... 查看详情

哪个Oracle查询更快

】哪个Oracle查询更快【英文标题】:WhichOraclequeryisfaster【发布时间】:2018-11-2415:08:50【问题描述】:我正在尝试使用C#WPF视图显示员工属性。我的数据库中有“2”个不同的oracle表中的数据:那些高层次的表结构是……员工表(EMP)-... 查看详情

SQL - 组合多个类似查询

】SQL-组合多个类似查询【英文标题】:SQL-Combiningmultiplelikequeries【发布时间】:2011-01-1518:37:21【问题描述】:嘿,我关于SO的第一个问题!任何人...在SQL方面还是个新手,所以我想我可能在这里遗漏了一些东西。我的问题是我目... 查看详情

Android SQLite:哪个查询(“query”或“rawQuery”)更快?

】AndroidSQLite:哪个查询(“query”或“rawQuery”)更快?【英文标题】:AndroidSQLite:Whichquery("query"or"rawQuery")isfaster?【发布时间】:2012-02-0811:40:48【问题描述】:我正在开发一个android数据库应用程序。我只想知道哪... 查看详情

objectForPrimaryKey 与过滤查询(匹配主键)性能,哪个对大数据更快?

】objectForPrimaryKey与过滤查询(匹配主键)性能,哪个对大数据更快?【英文标题】:objectForPrimaryKeyvsfilteredquery(tomatchprimarykey)performance,whichoneisfasterforlargedata?【发布时间】:2021-03-1910:25:05【问题描述】:这里我举个例子classTestReal... 查看详情

子查询或 leftjoin with group by 哪个更快?

】子查询或leftjoinwithgroupby哪个更快?【英文标题】:subqueryorleftjoinwithgroupbywhichoneisfaster?【发布时间】:2011-11-1312:35:39【问题描述】:我必须在我的应用程序中使用总计列显示运行总计..​​.所以我使用以下查询来查找运行总计.... 查看详情

报告的多个记录源

...4个组合框中的每个组合框中的值让Access知道我需要使用哪个查询 查看详情

分页结果集中的选择子查询或左外连接哪个更快

】分页结果集中的选择子查询或左外连接哪个更快【英文标题】:Whichisfasteraselectsub-queryoraleftouterjoininapaginatedresultset【发布时间】:2011-11-0901:14:31【问题描述】:使用MSSQL查询时,从计算表中获取单个列并将其连接到结果集的最... 查看详情

MongoDB/Mongoose 索引使查询更快还是变慢?

】MongoDB/Mongoose索引使查询更快还是变慢?【英文标题】:MongoDB/Mongooseindexmakequeryfasterorslowitdown?【发布时间】:2015-10-2216:12:20【问题描述】:我有一个这样的文章模型:varArticleSchema=newSchema(type:String,title:String,content:String,hashtags:[St... 查看详情

MongoDB:运行更快的查询,这更好 Pymongo 或 MongoEngine

...映射,这些表具有大量数据并生成结果。对于这个用例,哪个更快Pymongo或MongoEn 查看详情

如果我们将“Where”放在联接表中或放在最后,哪个查询更快?

】如果我们将“Where”放在联接表中或放在最后,哪个查询更快?【英文标题】:WhichQueryisfasterifweputthe"Where"insidetheJoinTableorputitattheend?【发布时间】:2014-01-1005:42:43【问题描述】:好的,我正在使用MysqlDB。我有两张简单... 查看详情

组合多个查询/查询优化

】组合多个查询/查询优化【英文标题】:combiningmultiplequeries/queryoptimization【发布时间】:2022-01-2323:46:53【问题描述】:我制作了一个小示例数据,我分三步修改。我不能做到这一点,也许有一些逻辑的聪明方法?我使用MicrosoftSQ... 查看详情

连接多个大表时如何进行更快的查询?

】连接多个大表时如何进行更快的查询?【英文标题】:Howtomakeafasterquerywhenjoiningmultiplehugetables?【发布时间】:2019-08-2801:21:41【问题描述】:我有3张桌子。所有3个表都有大约200万行。每天输入10,000-100,000个新条目。完成下面的sq... 查看详情

哪个查询更快:在 Amazon Redshift 中使用 order by 时 top X 或 limit X

】哪个查询更快:在AmazonRedshift中使用orderby时topX或limitX【英文标题】:Whichqueryisfaster:topXorlimitXwhenusingorderbyinAmazonRedshift【发布时间】:2017-06-1606:03:22【问题描述】:3个选项,在由时间戳插入的事件表上。哪个查询更快/更好?Sel... 查看详情