Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rockrgo

Otimizar consulta

Recommended Posts

Boa tarde pessoal,

 

alguma ideia de como posso otimizar esta consulta? pois a mesma está estourando o limite do meu servidor.

SELECT * FROM imagens WHERE id_galeria = '10' AND categoria = 'Fotos' 
AND MONTH(data_foto) IN (SELECT MAX(MONTH(data_foto)) FROM imagens WHERE id_galeria = '10' AND categoria = 'Fotos' AND YEAR(data_foto) IN (SELECT MAX(YEAR(data_foto)) FROM imagens WHERE id_galeria = '10' AND categoria = 'Fotos')) 
AND YEAR(data_foto) IN (SELECT MAX(YEAR(data_foto)) FROM imagens WHERE id_galeria = '10' AND categoria = 'Fotos') 
ORDER BY data_foto DESC

Pessoal consegui melhorar aqui, agora ficou bem melhor e mais rápido.

SELECT * FROM imagens WHERE id_galeria = '10' AND categoria = 'Fotos' 
AND EXTRACT(YEAR_MONTH FROM data_foto) IN (SELECT MAX(EXTRACT(YEAR_MONTH FROM data_foto)) FROM imagens WHERE id_galeria = '10' AND categoria = 'Fotos') 
ORDER BY data_foto DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT *
FROM IMAGENS
WHERE ID_GALERIA = '10'
AND categoria = 'Fotos'
AND EXTRACT(YEAR_MONTH FROM DATA_FOTO) = (SELECT MAX(EXTRACT(YEAR_MONTH FROM DATA_FOTO))
                                          FROM IMAGENS IMAGENS2
                                          WHERE IMAGENS2.ID_GALERIA = IMAGENS.ID_GALERIA
                                          AND IMAGENS2.CATEGORIA = IMAGENS.CATEGORIA)
ORDER BY data_foto DESC

Seria bom ter um indice IMAGENS.ID_GALERIA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa essa eu não conhecia, não sabia que dava para utilizar dados da primeira consulta na segunda.

 

Usando esses índices terei um bom ganho de desempenho ou a diferença é pouca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não creio que fará grande diferença mas estude a viabilidade do índice.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.