KUROL3 3 Denunciar post Postado Janeiro 7, 2010 Olá tenho o seguinte comando.. como eu sei que ele esta usando o index id_igreja sendo que no phpmysadmin aparece 2061 registro e o explain id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE r_galeria ALL id_igreja NULL NULL NULL 4123 Using temporary; Using filesort 1 SIMPLE relatorio eq_ref PRIMARY PRIMARY 4 banco.r_galeria.id_igreja 1 comando SELECT pais, cidade, estado, bairro, id_igreja, foto FROM r_galeria INNER JOIN relatorio ON (r_galeria.id_igreja = relatorio.id) ORDER by RAND() LIMIT 1 estrutura tabela r_galeria CREATE TABLE `r_galeria` ( `id` int(250) NOT NULL auto_increment, `id_igreja` int(11) NOT NULL, `r_cidade` varchar(250) NOT NULL default '', `r_estado` varchar(250) NOT NULL default '', `r_pais` varchar(250) NOT NULL default '', `foto` varchar(250) NOT NULL default '', `titulo` varchar(250) NOT NULL default '', `descricao` varchar(250) NOT NULL default '', `usuario` int(11) NOT NULL, `data` varchar(250) NOT NULL default '', `ip` varchar(250) NOT NULL default '', [color="#FF8C00"] PRIMARY KEY (`id`), KEY `usuario` (`usuario`), KEY `id_igreja` (`id_igreja`)[/color] ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4208 ; Marco Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Janeiro 7, 2010 Nao consegui entender o que você quer. Li várias vezes, mas ficou vago. Explique nos mais. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 7, 2010 Creio que se saber o plano de execução da query. Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Janeiro 7, 2010 Vou tentar explicar a mesma coisa diferente... como eu vou saber se o campo id_igreja no select com innjer, está usando indece ou não, sendo que quê a tebela tem pouco mais de 4000 registros e o indice da id_igreja tem pouco mais de 2000 Marco Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Janeiro 10, 2010 ta usando primary Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Janeiro 12, 2010 Na tabela r_galeria sua consulta está lendo todas as linhas (4123) pois ela retorna ALL na coluna type. ALL é o pior tipo que possa retornar em relação ao plano de execução para uma consulta. Perceba também que na coluna possible_keys temos o valor NULL e também na coluna key, essa que indica qual índice fora utilizado para buscar os dados, está também com o valor NULL. Essa consulta precisa ser otimizada, pois estrá rodando no "seco". A segunda consulta está utilizando a chave primária, lendo somente 4 linhas. O tipo retornado é eq_ref que diz que apenas uma linha foi lida para um conjunto de linhas de outra tabela, ou seja, para cada 1 linha de relatório, 1031 (mais ou menos) eram lidas. eq_ref é um dos types mais otimizados relacionados com planos de consultas. No final, você tem uma leitura simples, para esta consulta, você manipulou 4123 * 4 = 16.492 linhas! Melhore sua consulta à tabela r_galeria. Happy MySQL'ing!! http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Janeiro 16, 2010 opssssssssssssssssssssssssssssssssss mancada feia q eu dei na minha leitura dinamica pra query ficar 100% falta um index/chave em relatorio.id Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Janeiro 20, 2010 Obrigado pelas respostas porém não funcinow ainda. vou colar as imagens aqui. explain tabela R galeria tabela relatorio Duvida Conforme o Wagner Bianchi disse a possible_keys não esta null??? E o giesta pra query ficar 100% falta um index/chave em relatorio.id - nesta tabela relatório este id é a primary key e não repete nenhum registro. Aguardo Compartilhar este post Link para o post Compartilhar em outros sites