Поскольку приложения волшебным образом не генерируют запросы так, как им нравится, я думаю, что вполне вероятно, что где-то в вашем приложении есть ошибка, которая вызывает это. Вот несколько советов, которые вы можете использовать, чтобы отследить это. Я предполагаю, что вы используете PHP, так как вы используете MySQL, поэтому я буду использовать это для моих примеров.
Попробуйте добавить комментарии перед всеми вашими запросами в приложении, например:
$sqlSelect = "/* file.php, class::method() */";
$sqlSelect .= "SELECT * FROM foo ";
$sqlSelect .= "WHERE criteria";
Комментарий будет отображаться в журнале запросов. Если вы используете какую-то оболочку API базы данных, вы можете добавить эти сообщения автоматически:
function query($sql)
{
$backtrace = debug_backtrace();
// The function that executed the query
$prev = $backtrace[1];
$newSql = sprintf("/* %s */ ", $prev["function"]);
$newSql .= $sql;
mysql_query($newSql) or handle_error();
}
Если вы не используете оболочку, а скорее выполняете запросы напрямую, вы можете использовать расширение runkit и функцию runkit_function_rename , чтобы переименовать mysql_query (или все, что вы используете) и перехватить запросы.