我一直在尝试寻找一种可以告诉我一种方法的方法,这种方法可以告诉我在参数为静态时如何编写准备好的语句。
即使值始终相同,是否所有参数都应始终使用占位符?
SELECT *
FROM student
WHERE admission_status = 'Pending' AND
gpa BETWEEN ? AND ?
也就是说,在这个示例中,admission_status永远不会是“ Pending”,而是gpa会根据用户输入或不同的方法调用而改变。
我知道这不是最好的例子,但是我问的原因是,我发现在替换所有静态参数时,在使用占位符的静态参数替换成数百个查询时,执行速度存在明显差异。行长。
这样做可以接受吗?还是这违背了准备使用语句的标准?我想通过测试新索引并用值替换?s来“优化”较大的查询之前,先了解一种方法,以查看执行速度是否提高。