sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué nuestras consultas se atascan en el estado Escribir en la red en MySql?

Dado que las aplicaciones no generan consultas mágicamente como les gusta, creo que es bastante probable que haya un error en alguna parte de su aplicación que esté causando esto. Aquí hay algunas sugerencias que puede usar para rastrearlo. Supongo que estás usando PHP, ya que estás usando MySQL, así que lo usaré para mis ejemplos.

Intente agregar comentarios delante de todas sus consultas en la aplicación, como este:

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

El comentario aparecerá en su registro de consultas. Si está utilizando algún tipo de envoltorio API de base de datos, podría agregar estos mensajes automáticamente:

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

En caso de que no esté usando un contenedor, sino ejecutando las consultas directamente, puede usar la extensión runkit y la función runkit_function_rename para cambiar el nombre de mysql_query (o lo que sea que esté usando) e interceptar las consultas.