gpt4 book ai didi

mysql - SQL查询优化(时间)

转载 作者:行者123 更新时间:2023-11-29 04:37:01 26 4
gpt4 key购买 nike

考虑一个示例表“salary_details”

enter image description here .

现在,经过一些预处理后,我的 ArrayList ('user_id') 中有一些 ID。

user_id(0): 1
user_id(1): 3
user_id(2): 4
user_id(3): 6

我想做的是只过滤那些 id 的 salary = 2000。

哪种方法更好:

1. 

for (int i = 0; i < user_id.size(); i++) {
SELECT ID FROM salary_details WHERE (part_id = user_id.get(i)) AND (SALARY = 2000)
}

2. 

SELECT ID FROM salary_details
WHERE ((part_id = user_id.get(0))
OR (part_id = user_id.get(1))
OR (part_id = user_id.get(2))
OR (part_id = user_id.get(3)))
AND (SALARY = 2000)

或者,还有其他更好的选择吗?

最佳答案

使用 IN子句:

SELECT ID FROM salary_details WHERE SALARY = 2000 and part_id (in user_ids)

确切的语法取决于您的驱动程序/语言(只有一件事:使用准备好的语句,不要连接 sql 和值来构建查询)。

现在,最高效的查询

  • 必须通过测量找到
  • 非常依赖于您的数据和索引(使用 explain )

关于mysql - SQL查询优化(时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38785623/

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