<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Consigli per ottimizzazione query su mysql]]></title><description><![CDATA[<p dir="auto">Buongiorno, ho eseguito la migrazione da un db access verso mysql, il db viene utilizzato da un sito in classic asp.<br />
Ho migrato le tabelle con le medesime chiavi e indici.<br />
Ora noto che alcune query vengono eseguite 3 o 4 volte più lentamente.<br />
Vorrei un parere su questa query specifica che avevo creato con l'editor visuale di access, forse per mysql non è scritta nel modo migliore.</p>
<p dir="auto">select * from ((((ordini left join ordini_fatture on ordini.idord = ordini_fatture.idord) left join ddt on ordini.idord = ddt.idord) left join fatture on ordini_fatture.idfat = fatture.idfat) inner join utenti on ordini.iduser = utenti.iduser) left join (select incassi.idord, sum(incassi.importo) as sommadiimporto from incassi group by incassi.idord ) as sommadiincassi on ordini.idord = sommadiincassi.idord where ordini.eliminato=false and year(ordini.data)&gt;=2015 order by ordini.idord desc</p>
<p dir="auto">Il funzionamento è questo: ho una tabella ordini e una tabella incassi, estraggo la somma degli incassi per ogni ordine e poi allego altri dati da tabelle collegate, ho tolto l'elenco dei campi che visualizzo per semplificare la lettura.<br />
Prendendo i dati dal db access la pagina veniva generata in 0.5 secondi, prendendo i dati da mysql la pagina viene generata in 1.5 secondi, ho gli stessi tempi eseguendo la query da phpmyadmin.</p>
<p dir="auto">Questo è l'explain:</p>
<p dir="auto">[TABLE="class: data ajax"]</p>
<p dir="auto">id[/TH]<br />
select_type[/TH]<br />
table[/TH]<br />
type[/TH]<br />
possible_keys[/TH]<br />
key[/TH]<br />
key_len[/TH]<br />
ref[/TH]<br />
rows[/TH]<br />
Extra[/TH]<br />
[/TR]<br />
[TR="class: odd"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]ordini[/TD]<br />
[TD="class: inline_edit"]ALL[/TD]<br />
[TD="class: inline_edit"]iduser[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]11315[/TD]<br />
[TD="class: inline_edit not_null"]Using where; Using temporary; Using filesort[/TD]<br />
[/TR]<br />
[TR="class: even"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]ordini_fatture[/TD]<br />
[TD="class: inline_edit"]ref[/TD]<br />
[TD="class: inline_edit"]idord[/TD]<br />
[TD="class: inline_edit"]idord[/TD]<br />
[TD="class: inline_edit"]5[/TD]<br />
[TD="class: inline_edit"]Sql886196_1.ordini.idord[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]11[/TD]<br />
[TD="class: inline_edit not_null nowrap"][/TD]<br />
[/TR]<br />
[TR="class: odd"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]ddt[/TD]<br />
[TD="class: inline_edit"]ref[/TD]<br />
[TD="class: inline_edit"]idord[/TD]<br />
[TD="class: inline_edit"]idord[/TD]<br />
[TD="class: inline_edit"]5[/TD]<br />
[TD="class: inline_edit"]Sql886196_1.ordini.idord[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]11[/TD]<br />
[TD="class: inline_edit not_null nowrap"][/TD]<br />
[/TR]<br />
[TR="class: even"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]fatture[/TD]<br />
[TD="class: inline_edit"]eq_ref[/TD]<br />
[TD="class: inline_edit"]PRIMARY,IDfat[/TD]<br />
[TD="class: inline_edit"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]4[/TD]<br />
[TD="class: inline_edit"]Sql886196_1.ordini_fatture.idfat[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null nowrap"][/TD]<br />
[/TR]<br />
[TR="class: odd"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]utenti[/TD]<br />
[TD="class: inline_edit"]eq_ref[/TD]<br />
[TD="class: inline_edit"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]4[/TD]<br />
[TD="class: inline_edit"]Sql886196_1.ordini.iduser[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null nowrap"][/TD]<br />
[/TR]<br />
[TR="class: even"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]1[/TD]<br />
[TD="class: inline_edit not_null"]PRIMARY[/TD]<br />
[TD="class: inline_edit"]&lt;derived2&gt;[/TD]<br />
[TD="class: inline_edit"]ALL[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]10058[/TD]<br />
[TD="class: inline_edit not_null nowrap"][/TD]<br />
[/TR]<br />
[TR="class: odd hover"]<br />
[TD="class: inline_edit not_null nowrap, align: right"]2[/TD]<br />
[TD="class: inline_edit not_null"]DERIVED[/TD]<br />
[TD="class: inline_edit"]incassi[/TD]<br />
[TD="class: inline_edit"]ALL[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit null, align: right"]<em>NULL</em>[/TD]<br />
[TD="class: inline_edit nowrap, align: right"]12423[/TD]<br />
[TD="class: inline_edit not_null"]Using temporary; Using filesort[/TD]<br />
[/TR]<br />
[/TABLE]</p>
<p dir="auto">Ho provato a forzare l'indice idord sulla tabella incassi ma senza benefici in termini di performance.<br />
Grazie per l'aiuto.</p>
<p dir="auto">Andrea</p>
]]></description><link>https://connect.gt/topic/220314/consigli-per-ottimizzazione-query-su-mysql</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 08:43:30 GMT</lastBuildDate><atom:link href="https://connect.gt/topic/220314.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Jan 2016 20:31:48 GMT</pubDate><ttl>60</ttl></channel></rss>