Ponieważ aplikacje nie generują magicznie zapytań tak, jak im się podoba, myślę, że jest to raczej prawdopodobne, że gdzieś w Twojej aplikacji jest błąd, który to powoduje. Oto kilka sugestii, których możesz użyć, aby go wyśledzić. Zgaduję, że używasz PHP, ponieważ używasz MySQL, więc użyję tego w moich przykładach.
Spróbuj dodać komentarze przed wszystkimi zapytaniami w aplikacji, na przykład:
$sqlSelect = "/* file.php, class::method() */";
$sqlSelect .= "SELECT * FROM foo ";
$sqlSelect .= "WHERE criteria";
Komentarz pojawi się w dzienniku zapytań. Jeśli używasz jakiegoś opakowania API bazy danych, możesz potencjalnie dodać te wiadomości automatycznie:
Zapytanie funkcjifunction 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();
}
Jeśli nie używasz wrappera, ale wykonujesz zapytania bezpośrednio, możesz użyć rozszerzenia runkit i funkcji runkit_function_rename zmienić nazwę mysql_query (lub inną, której używasz) i przechwycić zapytania.