where子句对性能的影响

qlvxas9a  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(288)

我不是sqlMaven,我正在尝试优化我正在进行的查询。假设以下情况:我想提取clientid列表中所有未付的账单。我当前的查询有点像这样:

SELECT CLIENT_ID, BILL_ID, BILL_PAID  
FROM T_BILLS 
WHERE CLIENT_ID IN [LIST OF IDs] 
  AND BILL_PAID = 'No'

我的第一个想法是,第二个条件(bill\u paid='no')是减少返回的行数,从而加快查询速度。我的公司服务器有运行sql查询的时间限制。现在我要毁了它。我知道我可以将我的id列表分割成更小的列表,但在这样做之前,我想知道删除第二个where子句是否有帮助。逻辑是我会得到更多的数据,但这可能需要更少的计算。多余的数据可以很容易地用excel过滤掉。

u5rb5r59

u5rb5r591#

如注解中所述,如果没有索引 CLIENT_ID 以及 BILL_PAID 然后加上它们。也要考虑改变 BILL_PAID 键入from string to int或tiny int(model enum或boolean类型,如果适用),进一步破坏该列上的索引。

相关问题