MySQL准备语句-控制执行的条件语句

MySQL准备语句-控制执行的条件语句,mysql,sql,mysqli,Mysql,Sql,Mysqli,我试图了解如何最好地使用准备好的语句来提高一两个查询的响应时间。我在这里读过很多帖子,并且一直在尝试 我希望确认/澄清我的理解是正确的,我正朝着正确的方向前进——特别是我想知道我是否可以将execute与prepare一起包含,以及如何将条件语句合并到prepare中 我想知道我是否应该让条件语句成为mysqli代码的一部分,而不是真正准备好的语句,如果是这样,那么这样做是否会带来性能成本 此代码不起作用: 为了提高查询的响应时间,必须分析EXPLAIN查询语句的输出,并采取措施减少文件排序和临

我试图了解如何最好地使用准备好的语句来提高一两个查询的响应时间。我在这里读过很多帖子,并且一直在尝试

我希望确认/澄清我的理解是正确的,我正朝着正确的方向前进——特别是我想知道我是否可以将execute与prepare一起包含,以及如何将条件语句合并到prepare中

我想知道我是否应该让条件语句成为mysqli代码的一部分,而不是真正准备好的语句,如果是这样,那么这样做是否会带来性能成本

此代码不起作用:


为了提高查询的响应时间,必须分析EXPLAIN查询语句的输出,并采取措施减少文件排序和临时表的使用,同时减少检查的行数。 不幸的是,事先准备好的陈述对这两件事都没有帮助

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;
       ";