sql >> Databasteknik >  >> RDS >> Mysql

Varför fastnar våra frågor på staten Writing to net i MySql?

Eftersom applikationer inte på magiskt sätt genererar frågor som de vill, tror jag att det är ganska troligt att det finns ett misstag någonstans i din applikation som orsakar detta. Här är några förslag som du kan använda för att spåra det. Jag gissar att du använder PHP, eftersom du använder MySQL, så jag använder det för mina exempel.

Försök att lägga till kommentarer framför alla dina frågor i applikationen, så här:

$sqlSelect  = "/* file.php, class::method() */";
$sqlSelect .= "SELECT * FROM foo ";
$sqlSelect .= "WHERE criteria";

Kommentaren kommer att dyka upp i din frågelogg. Om du använder något slags databas-API-omslag kan du eventuellt lägga till dessa meddelanden automatiskt:

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();
}

Om du inte använder en wrapper, utan snarare kör frågorna direkt, kan du använda runkit-tillägget och funktionen runkit_function_rename för att byta namn på mysql_query (eller vad du nu använder) och fånga upp frågorna.



  1. Välj mySQL baserat endast på månad och år

  2. SQL - Går du igenom någon tabellrad i MySQL?

  3. Hur man får antal specifika rader från en annan tabell i en underfråga

  4. MySQL-kollation för att lagra flerspråkig data på okänt språk