Ir para conteúdo

POWERED BY:

Arquivado

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

trm_gimli

[Resolvido] Query, Questão velocidade

Recommended Posts

Opa...

Tenho um banco de dados, relativamente, pequeno, cerca de 20 mil registros, estou enfrentando um certo problema nos ultimos dias, que é a lentidão de resultado das Querys. Eu uso várias tabelas com chave extrangeira, para evitar informações repetidas e por inúmeros outros fatores, sendo isso minha query é esta:

SELECT `nt`.`id` FROM `noticias` AS `nt`

LEFT JOIN `fontes` AS `ft` ON ft.id = nt.fonte

LEFT JOIN `categorias` AS `ct` ON ct.id = ft.categoria

WHERE (ct.idioma = '2')

ORDER BY `nt`.`data` DESC LIMIT 15

 

Essa Query demora cerca de 5 segundos para ser executada, problema facilmente resolvido se tirar o Order By, tirando ele, a Query é executa em 0.2 segundos, até sei o porque disso ocorrer, ele varre todos os 25 mil registros e Ordena eles pelo campo data, para depois pegar os Quinze primeiros, agora a dúvida é, teria uma alternativa para sair disso? Para deixar a query um pouco mais rápida?

 

Se alguém puder ajudar iria ser de grande ajuda,

Att, Douglas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

taca um index em nt.data

Desculpa, vo te que da uma de Newbie... como assim? Essa tabela já tem uma chave primária que seria o ID, mas tu diz pra "seta" o campo nt.data como INDEX? Se for, teria como explicar, só o porque disso, só pra mim entende mesmo.

 

Agradeço a resposta, Att, Douglas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

já que vai sempre buscar uma quantidade de X das mais recentes

você pode também criar "tabelas de cache"

por exemplo, no momento de cadastrar uma nova noticia, cadastraria o ID nessa "tabela de cache"

 

aí não teria necessidade de ir buscar na tabelas principais onde o volume de dados é muito maior.

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.