Melhorando seus tempos de consulta MySQL em seu script PHP aumenta a velocidade de navegação e impede que o tempo limite de script ocorra. PHP é uma linguagem de script com recursos para ajudar você a criar páginas web dinâmicas. O MySQL é um sistema de gerenciamento de banco de dados relacional que oferece múltiplos usuários com acesso a bancos de dados em um servidor. Investigar a causa de consultas lentas com a declaração "explicar" , permitindo que o log de consultas lentas e cronometrando suas consultas sagacidade da função " microtime " . Usando a extensão PDO - MYSQL e atualizar seu PHP e versões do MySQL também pode ajudar a acelerar as consultas. Instruções
1
Atualize seu PHP e MySQL para as últimas versões de seus sites. As versões antigas , por vezes conflitantes entre si , enquanto as versões mais recentes têm correções de bugs e são mais propensos a ser compatível com o outro.
2
Abra o arquivo " my.cnf " do MySQL em um editor de texto , como o Windows Bloco de Notas. Localize e definir a opção " log_slow_queries " para " ON" em vez de "OFF". Defina o " long_query_time " a um número baixo, como "1" e observe o diretório " slow-queries log- " . Atualizar o serviço MySQL . O " mysql- slow.log " irá agora mostrar quais consultas levar um longo tempo para executar. Isso irá ajudá -lo a identificar a freqüência com que sua consulta está sendo executado lentamente.
3
Coloque a instrução "explicar" em sua consulta antes de uma instrução "SELECT" para recuperar as informações do otimizador sobre como sua consulta será executada. A saída resultante pode revelar a causa de sua consulta lenta , como um índice ausente
4
Tempo sua consulta PHP com a função " microtime " , adicionando o seguinte código onde sua consulta está localizado : .
$ time_beg = microtime (true);
//coloque sua consulta aqui
$ time_end = microtime (true);
$ time_res = $ time_end - $ time_start ;
echo " a consulta levou US $ time_res segundos ";
isso ajuda a confirmar que a consulta é a parte lenta e não alguma outra parte do seu código. Execute o código várias vezes até que você tenha um tempo consistente. Comparar este valor de tempo quando você faz todas as futuras modificações temporárias
5
verificar se há erros com a função " mysql_error " , adicionando o seguinte código onde sua consulta está localizado : .
$ resultado = mysql_query ( $ query );
if ($ resultado! ) {
$ msg = ' erro de consulta : ' . mysql_error (). "\\ n" ;
die ( $ msg )
}
6
Use a extensão PHP PDO_MYSQL para consultar seu banco de dados , em vez do " mysql_query " padrão ou funções " mysqli ". A extensão PDO_MYSQL utiliza suporte nativo declaração preparada do MySQL , o que pode ajudar a acelerar suas consultas. O código a seguir é um exemplo de como enviar uma consulta MySQL com a extensão PDO_MYSQL :
$ db_info = ' mysql: host = localhost; port = 3306 ; dbname = mydb ';
$ user = 'username' ;
$ pass = ' senha';
try {
$ db_handle = new PDO ( $ db_info , $ user, $ pass) ;
}
catch ( PDOException $ exceção) {
printf ( "Erro: % s", $ exception -> getMessage ());
}
$ db_handle -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );
$ db_handle -> setAttribute ( PDO :: ATTR_AUTOCOMMIT , false);
$ sql = "SELECT * FROM Tabela ";
$ result_set = $ db_handle -> query ( $ sql );
$ result_set -> setFetchMode ( PDO :: FETCH_ASSOC ) ;
while ($ row = $ result_set -> fetch () ) {
$ dados = $ linha [" mycolumn "] ; }
$ result_set -> closeCursor ();