Mauricio Cabral
a- a+

Tabelle e indici

Riprendendo l’argomento "creazione" adesso andiamo a vedere come possiamo rendere il nostro database più agile e flessibile, utilizzando altre funzioni delle tabelle.

Ancora tabelle
Talvolta può essere necessario creare una zona dove poter immagazzinare dei dati che dobbiamo utilizzare più volte nella nostra applicazione, dove possiamo liberamente strutturare le colonne come ci rende più comodo il lavoro in quel determinato momento, ma tutto questo senza andare a modificare la struttura originale del database. Per fare questo MySQL ci mette a disposizione le tabelle temporanee, che non hanno poi molte differenze rispetto alle normali tabelle.
Una tabella temporanea differenzia dalle altre (dal nome già si intuisce) perché hanno una durata limitata, essa infatti, viene creata dall’utente che accede al database e viene automaticamente eliminata quando l’utente abbandona il database, inoltre queste tabelle non possono essere visualizzate da altri utenti che accedono al database, tanto meno modificate, l’unico utente che può modificare la tabella è soltanto quello che l’ha creata.
Le utilità di queste tabelle possono essere varie: confronto con un’altra tabella, condensare dati di diverse tabelle, creare una tabella riempiendola con la "SELECT" di un’altra, e cosi via.

Vediamo ora, come eseguire queste operazioni.

CREATE TEMPORARY TABLE Autori (ID INT, Nome VARCHAR(30));

SINTASSI: CREATE TEMPORARY TABLE Nome_Tabella (Colonne, Colonne...);


Possiamo anche riempire la tabella utilizzando una SELECT:

CREATE TEMPORARY TABLE SELECT * FROM Catalogo;

SINTASSI: CREATE TEMPORARY TABLE SELECT * FROM Tabella;


Un’altra funzione, molto utile che ci offre MySQL, è la possibilità di creare una tabella solo nel caso che questa non sia già presente nel database.

CREATE TABLE IF NOT EXISTS Catalogo (ID INT, Nome VARCHAR(20));

SINTASSI: TABLE IF NOT EXISTS Nome_Tabella (Colonne, Colonne...);

 

Indici

Un buon esempio per gli Indici si può prendere proprio dal nostro progetto. Quando andate in una libreria, sia che andate a cercare un preciso libro o che semplicemente entrate a “dare un’occhiata”, potete orientarvi seguendo le indicazioni: narrativa, storia, ragazzi, informatica...
Utilizzando queste indicazioni la vostra ricerca risulta molto più veloce e comoda, il lavoro degli indici è più o meno questo, agevolare la ricerca dei dati, saltando tutta la parte che non vi interessa. MySQL offre questa importante funzione.

In una tabella possono esserci fino a 16 indici, vuol dire che potete indicizzare ben 16 colonne di una tabella, cosa che però è sconsigliata. Gli indici hanno il compito di velocizzare le ricerche ma se riempite una tabella di indici, avrete l’effetto contrario, rallenterete le operazioni. Poi vi chiederete quale colonne indicizzare? Userete gli indici nelle colonne che usate più spesso nelle Query SQL.

Un’altra cosa importante da dire, è che quando dichiarate una colonna come "chiave primaria" MySQL provvede automaticamente ad indicizzare questa colonna, quindi se indicizzate una colonna che è già “chiave primaria” state mettendo due indici nella stessa colonna, la cosa non è solo inutile ma può rallentare ulteriormente il database.
C’è anche il rovescio della medaglia, mentre gli indici aiutano nella ricerca SELECT, rallentano invece la scrittura dei dati, per intenderci INSERT, UPDATE, DELETE.

Ecco come possiamo creare un indice.

CREATE INDEX ID_Nome ON Catalogo (Autore);

SINTASSI: CREATE INDEX Nome_indice ON Nome_Tabella (Nome_colonna, Nome_Colonna)


Per cancellare un indice si fa:

DROP INDEX ID_Nome ON Catalogo;

SINTASSI: DROP INDEX Nome_Indice ON Nome_Tabella

 

 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!