gpt4 book ai didi

java - sql如何更快的获取数据?先取计数再取数据或者直接取数据

转载 作者:行者123 更新时间:2023-12-02 06:43:09 24 4
gpt4 key购买 nike

我致力于让我的程序运行得更快,这是我的主要目标。我的程序是用java编写的,从3个表中获取数据。现在,对于每个表,它首先使用此查询来检查是否有任何数据要获取:

    SELECT COUNT(1) FROM FOLDER WHERE parentFolderID = ? " + 
"AND status NOT IN ('RM', 'TM')"

然后如果有使用此查询来获取它:

SELECT folderid, foldertype, foldername, owner, description, "
+ "cabinetid, folderlevel, parentfolderid, status, lastmodified FROM folder WHERE parentFolderID = ? "
+ "AND status NOT IN ('RM', 'TM')

这是更有效的方法还是我应该直接获取数据?

最佳答案

在您问题的特殊情况下,我会避免 count 查询。 where 子句是相同的:即是否使用索引:查找匹配的 rowids 的物理“工作量”(不是获取找到的数据) ) 对于两个查询来说是相同的。

  1. 如果没有找到匹配的行,则两个查询的性能开销几乎相同,并且不会提供额外的信息。

  2. 如果找到匹配的行,则无论如何都会调用第二个查询:第一个查询不会提供任何附加信息。

性能改进的关键可能是获取 parentFolderID 值的方式:也许您可以将两个不同的查询合并为一个 - 这取决于您的数据库产品。

关于java - sql如何更快的获取数据?先取计数再取数据或者直接取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com