Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Ho capito, grazie mille
    Posso sapere dove hai imparato così bene SQL? Io ho letto la guida di HTML.it ma non è stata molto esaustiva Di 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<<<

  2. #12
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    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)

  3. #13
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Originariamente 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 esaustiva Di queste cose ad esempio non parla
    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 primis ) 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)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.