Programação  
 
Conhecimento computador >> Programação >> Programação PHP /MySQL >> 
Minha consulta é rápido no MySQL e lento em PHP
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 ();

Anterior :

Próximo : No
  Os artigos relacionados
·Como ter listas do Bloco PHP 
·Grails MySQL Tutorial 
·Como proteger um painel de administração em PHP Sem S…
·Como executar o FFmpeg como um processo de fundo Com PH…
·Como carregar dinamicamente em PHP Classes 
·Como adicionar o PHP Lightbox para PHP 
·Posso usar Coding PHP com um editor HTML como KompoZer 
·PHP Se Comparar Declarações 
·PHP Referências Vs . Objeto Manipula 
·Autenticação string de consulta em PHP 
  Artigos em destaque
·Diferença entre recursão e iteração 
·Como Sair de Webdav 
·Como verificar se a string é um número em java usando…
·Como usar um serviço Web em um fluxo de dados SSIS 
·Como criar um Twitter córrego com PHP 
·O que é uma classe proxy 
·Como criar uma classe abstrata em Java usando o NetBean…
·Como compilar um SWF em FlashDevelop 
·Como criar um programa em C no Visual Studio 
·Como substituir Div texto com CSS 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados