qualcuno potrebbe spiegarmi a cosa servono gli index????
qualcuno potrebbe spiegarmi a cosa servono gli index????
Gli indici servono per accelerare la ricerca dai dati su una colonna della tabella.
Sono realizzati tramite apposite strutture dati (b+tree, ecc...) che permettono di cercare una chiave in tempo molto inferiore rispetto ad una scansione sequenziale dell'intera tabella
come creo un index e con quali criteri lo si sceglie???
Gli indici si creano tramite SQL, la sintassi precisa dipende dal dbms che usi. Comunque puoi sempre usare l'applicazione di controllo del db (ad esempio phpMyAdmin per MySQL)
Il criterio con cui crearli dipende dalla progettazione del database: generalmente si usano su quelle colonne in cui si eseguono molte ricerche (ad esempio nomi, ecc). Sono molto efficaci anche su campi su cui devi eseguire i join tra tabelle diverse.
Tieni conto che il loro utilizzo viene svolto in automatico dal dbms, che valuterà il modo migliore di accedere alla tabella. Alcuni db (es ORACLE) permettono di dare dei suggerimenti all'ottimizzatore, ma nella maggior parte dei casi non sta a te preoccupartene.
altra domanda sugli index:
se ho capito, un indice funziona un pò così:
devo prelevare la scheda del "sig. bartolo bartolini".
invece di realizzare una ricerca sequenziale e scanzionare tutti gli scaffali, utilizzo una strada preferenziale che mi porta direttamente verso gli scaffali che contengono solo schede di tutte quelle persone che si chiamato "bartolo bartolini". Arrivato in questa zona, realizzo una ricerca mirata sul gruppo di persone "bartolo bartolini" in modo da individuare esattamente
bartolo bartolini via pippo, anzichè bartolo bartolini via lazio.
E' corretto?????
Quindi posso creare indici sulle colonne nome e cognome di impiegato e realizzare un'azione simile all'esempio citato sopra????
nessuno sa dirmi se ciòche ho scritto è corretto???
help
Fondamentalmente si!
Ricordati comunque che devi creare UN SOLO indice formato da entrambe le colonne (nome, indirizzo) e non due indici formati da una colonna sola!
altra cosa:
io devo solo menzionare i dati di ricerca relativi alle colonne che identificano un index e tutto il resto dell'ottimizzazione della ricerca la realizza il db???
mi sono documentato e sembra che tutto sia demandato al db
Volevo conferma...
Vi risulta??????