Ir para conteúdo

POWERED BY:

Arquivado

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

Good

Select limit

Recommended Posts

Este meu código está demorando cerca de 3seg pra ser executado:

SELECT *, (SELECT COUNT(*) FROM visualizacoes v WHERE c.id = v.nid AND v.data > '2014-09-03' LIMIT 5) AS total FROM conteudo c WHERE (SELECT COUNT(*) FROM visualizacoes v WHERE c.id = v.nid AND v.data > '2014-09-03' LIMIT 5) > 0 ORDER BY total DESC LIMIT 5

O "AS total" está retornando uma quantidade maior do que 5 e está causando lentidão no site. Pq não limita a 5? E qual pode ser a solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT *, (SELECT COUNT(*)
           FROM visualizacoes v
           WHERE c.id = v.nid
           AND v.data > '2014-09-03' LIMIT 5) AS total
FROM conteudo c
WHERE (SELECT COUNT(*)
       FROM visualizacoes v
       WHERE c.id = v.nid
       AND v.data > '2014-09-03' LIMIT 5) > 0
ORDER BY total DESC LIMIT 5

Primeiro idente pois se entende melhor.

Segundo o que este sql deveria retornar !?

Terceiro as tabelas tem índices !?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, mas não vi diferença entre o meu e o seu :S

 

 

############################

 

 

Mostrando registos 0 - 4 ( 5 total, O Query demorou 2.9922 sec)

 

está demorando mto pra ser executado..

 

Tipo, é um sistema de notícias.. e tem uma tabela visualizações, e aí eu pego as notícias com mais visualizações hoje, durante a semana, durante o mês e desde sempre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só identei sua query para tentar entender o que elz faz.

 

As tabelas tem índices ?!

 

A tabela conteudo tem alguma relação com visualizacoes !?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi, quer que o resultado seja este:

SELECT
  c.*,
  COUNT(v.id) qtd_visualizacoes
FROM conteudo c
INNER JOIN visualizacoes v ON c.id = v.nid
WHERE v.data > '2014-09-03'
ORDER BY qtd_visualizacoes DESC
LIMIT 5

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.