Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何重写查询以避免使用索引记录为日志\u查询\u而不是\u_Mysql_Logging_Stored Procedures_Indexing - Fatal编程技术网

Mysql 如何重写查询以避免使用索引记录为日志\u查询\u而不是\u

Mysql 如何重写查询以避免使用索引记录为日志\u查询\u而不是\u,mysql,logging,stored-procedures,indexing,Mysql,Logging,Stored Procedures,Indexing,我有以下存储过程: CREATE PROCEDURE testProc(IN p_idProject INTEGER) BEGIN DECLARE nowTime DATETIME; SET @nowTime = NOW(); SELECT idCustomer FROM NextCalls WHERE @nowTime-nextCall = (SELECT MAX(@nowTime - nextCall) F

我有以下存储过程:

CREATE PROCEDURE testProc(IN p_idProject INTEGER)
BEGIN
DECLARE nowTime DATETIME;
SET @nowTime = NOW();

     SELECT 
         idCustomer 
     FROM NextCalls WHERE @nowTime-nextCall = 
         (SELECT MAX(@nowTime - nextCall) 
          FROM NextCalls 
          WHERE idProject = p_idProject AND nextCall < @nowTime) 
     LIMIT 1;
END $$

在nextCall列上设置了索引。不幸的是,它作为一个查询登录到mysql-slow.log文件中,没有正确使用索引。这个过程经常被使用,我非常乐意避免糟糕的索引。是否可以重写以实现此目的?

您只需选择最旧的下一个调用。无需执行任何计算,您只需通过以下方式使用ORDER:


我是瞎了-这么明显的解决办法:Thx。顺便说一句,你忘记了当前时间戳中的E。找到最简单的解决方案通常并不容易
SELECT idCustomer 
FROM NextCalls 
WHERE idProject = p_idProject AND nextCall < CURRENT_TIMESTAMP
ORDER BY nextCall
LIMIT 1