Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Eu fiz um sistema em php que acessa um db com mais de 10 milhores de registros ao mês!!! Eu fiz o possível pra torná-lo mais rápido no php mais não tem jeito. Nós criamos indice no banco e começamos a usar foreign key mas mesmo assim a consulta demora de 2 a 5 minutos.
Bom, eu tenho duas querys nas quais pensei em otimizar. A primeira eu faço esse select numa tabela temporária:
SELECT distinct d.callid as calliddif, max(d.id_result) as id_result, s.title as dac,
min(d.data) as data, CASE WHEN min(d.classifier)=1 THEN 'Atendido' ELSE 'Não Atendido' END as atendimento, d.callid,
max(d.numa) as numa, min(d.classifier) as classifier,
max(d.connection_id) as connection_id, d.login, max(d.skill) as skill,
IF(max(d.ramal)>1,max(d.ramal),'Nenhum') as ramal
FROM int_temp_callid d
inner join tbconnections s on (s.id = d.connection_id)
where d.data >= '2009-10-15 00:00:00' and d.data <= '2009-10-15 23:59:59' and d.login='paiva'
and d.session_id='oh8kec685mbosn6n66pg3jo0a2'
and d.classifier in (1,6) group by d.callid;
O segundo, eu faço o select linha a linha (o select fica dentro de um while no php)
Select * from tbresult_cti i where i.station = 56015
and i.connection_id = 1 and i.classifier = 16
and i.dt_inserted >= '2009-10-15 11:15:31'
and i.dt_inserted <= DATE_ADD('2009-10-15 11:15:31', INTERVAL 2 HOUR) limit 1
Eu tenho como usar o left outer join ou algum comando que me permite executar esse segundo select junto com o primeiro?
Carregando comentários...