我试图了解如何最好地使用准备好的语句来改进我的一两个查询的响应时间。我在这里读过一些帖子,并且一直在做实验。
我希望确认/澄清,我的理解是正确的,我正在朝着正确的方向前进--特别是我想知道我是否可以将执行和准备包括在内,以及如何在准备中包含有条件的语句。
我想知道是否应该将条件语句作为mysqli代码的一部分,而不是实际准备的语句,如果应该的话,这样做是否会带来性能成本。
此代码不工作:
PREPARE get_Class_Session FROM
"SELECT @COUNT:=COUNT(*) FROM (SELECT time_Table_Key,
date,
DATE_FORMAT(date, '%W') AS day,
slot,
class_Session
FROM `Time_Table`
WHERE (((date >=? && date <= ?) && DAYOFWEEK(date)=? && (slot >=? && slot <=?)) && class_Session ='0'))
AS time_Table_Keys;
IF @COUNT = '0' THEN
EXECUTE update_Time_Table USING @start_Date, @end_Date, @day, @start_Time, @end_Time;
END IF;
";发布于 2013-01-16 13:22:51
为了改善查询的响应时间,必须分析EXPLAIN query语句的输出并采取行动,以消除文件端口和临时表的使用,并减少检查的行数。
不幸的是,准备好的陈述对这两件事都没有帮助。
https://stackoverflow.com/questions/14359255
复制相似问题