Ho capito, grazie mille![]()
Posso sapere dove hai imparato così bene SQL? Io ho letto la guida di HTML.it ma non è stata molto esaustivaDi queste cose ad esempio non parla
![]()
Ho capito, grazie mille![]()
Posso sapere dove hai imparato così bene SQL? Io ho letto la guida di HTML.it ma non è stata molto esaustivaDi queste cose ad esempio non parla
![]()
Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
>>>Visita il mio blog<<<
Bhè diciamo che quelle select con IN vanno evitate il più possibile con mysql, in quanto sono estremamente inefficienti.
la subquery dipendente viene eseguita per ogni ciclo della query esterna (contrariamente a quello che uno potrebbe pensare).
questo determina prestazioni disastrose (versioni <=5.1), pessime (5.5), pessime (5.6).
---
L'unico db "mysql-like" che adotta un'ottimizzazione ragionevole è mariadb, dalle versioni 5.3 in su (correntemente in beta).
altrimenti conviene (lato applicazione) spezzare la query in due, con una GROUP_CONCAT degli ID ritornati dalla prima.
Le query IN (elenco-di-id) è infatti efficiente (anzi, in certi casi addirittura vengono ordinati con un quicksort per utilizzare una ricerca binaria di corrispondenza sugli OR)
---
O, in alternativa, riscrivere la query con un bel join (non sempre fattibile, non sempre immediato)
grazie mille, ma la verità è che non lo conosco poi così bene, comunque se posso darti un consiglio la guida di HTML.it è perfetta per iniziare a capire il meccanismo, poi però se vuoi approfondire devi leggere libri e anche i forum (ovviamente questo in primisOriginariamente inviato da cepu96
Ho capito, grazie mille![]()
Posso sapere dove hai imparato così bene SQL? Io ho letto la guida di HTML.it ma non è stata molto esaustivaDi queste cose ad esempio non parla
![]()
) perchè (secondo me ) è nei forum che si risolvono problemi concreti e di conseguenza si impara un sacco, ad esempio io oggi grazie a franzauker ho imparato che è preferibile evitare le query con IN se si usa mysql.
![]()
Il calcolatore è straordinariamente veloce, accurato e stupido.
L'uomo è incredibilmente lento, impreciso e creativo.
L'insieme dei due costituisce una forza incalcolabile.
(Albert Einstein)