Jump to content


Photo

Select


  • Faça o login para participar
2 replies to this topic

#1 kurole

kurole

    Ativo

  • Usuários
  • 345 posts
  • Sexo:Não informado

Posted 09/01/2008, 18:11

minha tabela hinos tem cerca de 9000 registros
minha tabela nome tem cerca de 2000 registros

estou usando esse select

SELECT *
FROM HINOS, hinos_nomes
WHERE (
(
hinos_nomes.numero = HINOS.numero
)
AND hinos_nomes.idioma = 1
AND hinos_nomes.livro = 4
)
AND HINOS.excluido != 'sim'
ORDER BY HINOS.numero ASC
LIMIT 90 , 30




esta demorando cerca de 12 segundos para executalo.. isso pq ainda esta em um servidor dedicado na locaweb.....

aguardo.. sugestoes

marco

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 09/01/2008, 19:00

Esse campo numero tem índice? Por curiosidade, tem como mostrar a saída de um EXPLAIN <sua query aqui> ?
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 kurole

kurole

    Ativo

  • Usuários
  • 345 posts
  • Sexo:Não informado

Posted 09/01/2008, 19:39

ai vai a estrutura das duas tabelas..

tabela HINOS

CREATE TABLE `HINOS` (
`id` int(250) NOT NULL auto_increment,
`nome` varchar(250) NOT NULL default '',
`nome_avulso` varchar(255) NOT NULL,
`cd_nome` varchar(255) NOT NULL,
`numero` varchar(250) NOT NULL default '',
`comentario` mediumtext NOT NULL,
`cantor` varchar(250) NOT NULL default '',
`categoria` varchar(250) NOT NULL default '',
`arquivo` varchar(250) NOT NULL default '',
`usuario` varchar(250) NOT NULL default '',
`mostra` varchar(250) NOT NULL default '',
`download` int(250) NOT NULL default '0',
`data` varchar(250) NOT NULL default '',
`hora` varchar(250) NOT NULL default '',
`tamanho` varchar(255) NOT NULL default '',
`excluido` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8530 ;


hinos nomes

CREATE TABLE `hinos_nomes` (
`id` int(250) NOT NULL auto_increment,
`nome` varchar(250) NOT NULL default '',
`numero` varchar(250) NOT NULL default '',
`idioma` varchar(255) NOT NULL,
`livro` int(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1964 ;


a partir do numero da tabela hinos... comparada com o numero da tabela hinos nomes. mostre o nome do hino sendo que o idioma da tabela hinos_nomes tem que ser sempre 1 e livro 4

eu tentei assim tb.. deu certo mas demorou 13 segundos

select * from hinos inner join hinos_nomes on (hinos.numero = hinos_nomes.numero and hinos_nomes.idioma = 1 AND hinos_nomes.livro = 4) where excluido !='sim' order by hinos.numero desc


Aguardo
Marco

Edição feita por: kurole, 09/01/2008, 19:43.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq