【问题标题】:MySQL Prepared statements - conditional statement to control executeMySQL Prepared statements - 控制执行的条件语句
【发布时间】:2022-05-14 01:23:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    为了提高查询的响应时间,必须分析EXPLAIN query 语句的输出并采取措施来限制文件排序和临时表的使用以及减少检查的行数。
    不幸的是,prepared statements 对这些事情都没有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多