“Conocimientos Programación>Programación PHP /MySQL

Mi consulta es rápida y lenta en MySQL en PHP

2012/9/20
Cómo mejorar sus tiempos de consulta de MySQL en el script PHP incrementa la velocidad de navegación y evita tiempos de espera de secuencia de comandos que se produzcan. PHP es un lenguaje de programación con características para ayudarle a crear páginas web dinámicas. MySQL es un sistema de gestión de base de datos relacional que ofrece múltiples usuarios el acceso a bases de datos en un servidor. Investigar la causa de consultas lentas con la declaración de "explicar" , lo que permite el registro de consultas lentas y tiempo de su consulta ingenio la función " microtime " . Con la extensión PDO MYSQL y actualizar su versión de MySQL PHP y también puede ayudar a acelerar las consultas. Instrucciones
1

Modificar PHP y MySQL para las últimas versiones de sus sitios web. Las versiones antiguas a veces en conflicto entre sí , mientras que las versiones más recientes cuentan correcciones de errores y tienen más probabilidades de ser compatibles entre sí .
2

Abra el archivo " my.cnf " de MySQL en un editor de texto como el de Windows Bloc de notas. Localice y establezca la opción " log_slow_queries " en "ON " en lugar de "OFF " . Establecer el " long_query_time " a un número bajo, como " 1 " y anote el directorio " log-slow -queries " . Actualizar el servicio MySQL. El " mysql- slow.log " ahora mostrará las consultas que tardan mucho tiempo en ejecutarse. Esto le ayudará a identificar la frecuencia con la consulta se ejecuta lentamente.
3

Establezca la sentencia "explicar" en la consulta antes de una sentencia " SELECT" para recuperar información del optimizador de cómo su se ejecutará consulta. La salida resultante puede revelar la causa de su consulta lenta , como un índice de falta
4

Tiempo consulta PHP con la función " microtime " agregando el siguiente código donde se encuentra su consulta: .

$ time_beg = microtime ( true);

//realice su consulta aquí

$ tiempo_final = microtime ( true);

$ time_res = $ tiempo_final - $ tiempo_inicio ;

echo " la consulta se llevó $ time_res segundo " ;

Esto ayuda a confirmar que la consulta es la parte lenta y no alguna otra parte de su código. Ejecute el código varias veces hasta que tenga la misma hora . Compare este valor de tiempo al realizar las modificaciones temporales futuros
5

comprobar si hay errores con la función " mysql_error " agregando el siguiente código donde se encuentra su consulta: .

$ resultado = mysql_query ( $ consulta ) ;

si {

$ msg = 'Error de consulta: ' mysql_error () ( $ result !) . . " \\ n";
die

($ msg)

}
6

Utilice la extensión PDO_MYSQL PHP para consultar la base de datos en lugar de la " mysql_query " estándar o funciones " mysqli ". La extensión PDO_MYSQL utiliza soporte declaración preparada nativa de MySQL , que puede ayudar a acelerar las consultas. El código siguiente es un ejemplo de cómo enviar una consulta MySQL con la extensión PDO_MYSQL :

$ db_info = ' mysql : host = localhost , port = 3306 ; dbname = mydb ' ;

$ user = ' nombre de usuario ' ;

$ pass = ' contraseña';

try {

$ db_handle = new PDO ($ db_info , $ user , $ pass ) ;

}

catch ( PDOException $ exception ) {

printf ("Error :% s " , $ exception -> getMessage ());

}

$ db_handle -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ;

$ db_handle -> setAttribute ( PDO :: ATTR_AUTOCOMMIT , false) ;
< p> $ sql = "SELECT * FROM mitabla " ;

$ result_set = $ db_handle -> query ( $ sql ) ;

$ result_set -> setFetchMode ( PDO :: FETCH_ASSOC ) ;

while ( $ row = $ result_set -> fetch ( )) {

$ data = $ row [" micolumna "]; }


< p > $ result_set -> closeCursor ();

Programación PHP /MySQL
Cómo ocultar cadenas en PHP
Cómo crear herramientas con PHP Widget
Cómo crear un archivo mediante PHP
Cómo comprobar si una variable se obtiene es situado en PHP
Cómo hacer a Apague el interruptor de una función en PHP
Cómo utilizar ODBC con PHP
Cómo descargar un archivo en PHP
Cómo sacar el remoto Tamaño del archivo de PHP
Conocimientos Informáticos © http://www.ordenador.online