DOMANDA Gestione indici e chiavi Mysql

Pubblicità

Alemix

Utente Attivo
Messaggi
39
Reazioni
0
Punteggio
36
Voglio capire bene la funzione degli indici, perchè sinceramente non è che sto capendo tanto, o meglio voglio levarmi dei dubbi :cav:

Sono 2 giorni che Googlo, e ho visto che esistono 4 tipi di indici
PRIMARY
INDEX
UNIQUE
FULLTEXT

Ok e fin qua ci sono, a seconda di come voglio i valori Mysql fa dei controlli.

Quello che non capisco è più che altro come agiscono sulle select. Cioè se io faccio una chiave primaria esempio come agisce? cioè non fa più il controllo su tutti i valori? ma tiene che ne so un ordine suo?
Esempio
Devo ricercare nome in un tabella... lui se li sistema in ordine alfabetico e se vede che la query ricerca un nome che inizia per A lui fa la ricerca solo su quelli?
giusto per fare un esempio

Ora non chiedo una spiegazione precisa delle operazioni interne di Mysql, ma riuscire almeno a capire come funzionano a livello di programmazione, perchè non ho ben capito come usarle.

Se ho capito bene, le devo fare per le operazioni WHERE e/o LIKE che uso di più no?

Altra cosa, mi devo ancora informare in merito perchè ero preso con la ricerca degli indici... ma le chiavi esterne fanno parte degli indici? se è anche quelle vanno definite? perchè di solito io attraverso php faccio delle ricerche concatenate con la clausola WHERE, però a sto punto ho paura di "sbagliare"
 
Hai un po di confusione, le chiavi (come ad esempio primary) servono per stabilire un indice nella tabella. A livello di select non fanno molta differenza, in quanto nelle select puoi decidere tu come, cosa e in che ordine selezionare i dati. Puoi anche tranquillamente selezionare dati escludendo le colonne indicate come chiavi.
Fanno la differenza nelle query di INSERT e UPDATE, in quanto una chiave primaria è unica e non può avere duplicati (non potrai inserire record nella stessa tabella con la stessa chiave primaria). Una chiave index invece può essere inserita più volte nella stessa tabella. Le chiavi esterne sono chiavi (primarie, uniche o index) che devi definire tu e vanno a definire relazioni tra chiavi di tabelle diverse. Se tu colleghi ad esempio due tabelle attraverso una chiave esterna puoi fare query di select utilizzando il JOIN oppure fare in modo che all'eliminazione o all'update di un dato in una tabella venga eliminato o aggiornato il dato in un'altra tabella relativo alla chiave esterna. Le chiavi esterne sono disponibili solo con InnoDB.

Solitamente le chiavi vengono utilizzate creando una colonna "id", che può essere un numero per identificare i vari record di una tabella. Attraverso gli id delle varie tabelle si possono fare query molto complesse e utilizzando chiavi esterne con il join ci si risparmi molto tempo.
 
Pubblicità
Pubblicità
Indietro
Top