Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> PHP /MySQL Programmazione >> .

MySQL Distinto Tutorial

MySQL è un sistema open source di gestione di database relazionali ( RDBMS ) . A causa del suo basso costo , le aziende utilizzano sempre più per database di grandi dimensioni . La più grande banca dati , più è probabile una query restituirà tutte le righe duplicate , rendendo l'uscita difficile da leggere e la query lenta. Utilizzando la parola chiave DISTINCT nelle istruzioni SELECT in grado di eliminare questi duplicati nella vostra uscita . Perché si ottiene duplicati Risultati

solito, una query non visualizza tutte le colonne della tabella o le tabelle cui fa riferimento. Un datore di lavoro può, ad esempio , avere una tabella che tiene traccia delle assenze dei dipendenti . Se vuole sapere quali dipendenti hanno avuto almeno un assenza nel corso dell'ultimo mese , potrebbe utilizzare una query che sembra qualcosa di simile :

Seleziona employees.first_name , dipendenti employees.last_nameFROM , absencesWHERE employees.employee_id = absences.employee_idAND absences.date > = ' JUN- 01-09 ';

Se Bob Smith era assente per tre giorni nel mese di giugno, i risultati della query saranno contengono tre file di Bob Smith . Anche se la query non visualizza la data , dal momento che tre assenze di Bob erano in date diverse, questa query restituisce ciascuno dei tre file .
Perché duplicati i risultati sono cattivi

righe duplicate non solo rendere la vostra uscita difficile da leggere , ma anche rallentare la query e le risorse del database maiale . A meno che il database è molto piccolo , probabilmente sviluppare i vostri script SQL in una istanza del database di sviluppo che è separata dalla propria istanza di produzione . Non è affatto raro per le istanze di sviluppo di avere meno dati in loro che l'istanza di produzione .

Se permettete righe duplicate nella vostra uscita , si sta facendo la ricerca di database tutto il percorso attraverso tutte le tavoli ti sei unito insieme nella query . Questo può fare una query che correva abbastanza veloce nella propria istanza dev lento a passo d'uomo in produzione . Se il database di produzione è di grandi dimensioni , la query può funzionare per ore
utilizzo e ottimizzazione di DISTINCT

I seguenti SELECT restituisce una riga per Bob Smith : .

SELEZIONA employees.first_name DISTINCT , dipendenti employees.last_nameFROM , absencesWHERE employees.employee_id = absences.employee_idAND absences.date TRA '2009- 06-01 'AND '2009 -07- 01' ;

I risultati sono più facili da leggere , ma il server di database deve ancora lavorare troppo se il vostro tavolo dipendente ha molte più righe di quante il tuo tavolo assenze . . MySQL passerà attraverso tutti i record della tabella dipendenti per vedere se il dipendente ha delle assenze

Invece , rendere il lavoro distinti per voi per rendere la query più efficiente :

Seleziona employees.first_name DISTINCT , dipendenti employees.last_nameFROM , absencesWHERE absences.employee_id = employees.employee_idAND absences.date > = ' JUN- 01-09 ';

Questa query avrà un record nella tabella di assenze e di smettere di cercare la tabella dipendente una volta che trova il dipendente che va con quella assenza. La query verrà eseguito solo come molte ricerche quante sono le assenze , e cercherà attraverso molto meno della tabella dipendente in ogni ricerca. Esso utilizza meno risorse di database e corre molto più veloce .

 

Programmazione © www.354353.com