MySQL Prepared语句 - 用于控制执行的条件语句

时间:2013-01-16 13:10:24

标签: mysql sql mysqli

我试图了解如何最好地使用预准备语句来改善我的一个或两个查询的响应时间。我在这里阅读了很多帖子并且一直在试验。

我想确认/澄清我的理解是正确的,我正朝着正确的方向前进 - 特别是我想知道我是否可以在准备中包含执行以及如何在准备中包含条件语句。

我想知道我是否应该将条件语句作为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;
       ";

1 个答案:

答案 0 :(得分:0)

为了改善查询的响应时间,必须分析EXPLAIN query语句的输出并采取措施以便elimitane filesorts和临时表使用以及减少检查的行数。
不幸的是,准备好的陈述可以帮助解决这些问题。