 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
beginner18
Data înscrierii: 30/Aug/2004
Mesaje: 757
Locație: Bucuresti
|
| Trimis: Lun Sep 13, 2004 9:26 am Titlul subiectului: la creearea tabelului... |
|
|
| Pentur ce se foloseste primary key si index la creearea tabelului? Daca nu ar fi, ce ar fi ? :)) |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Lun Sep 13, 2004 2:30 pm Titlul subiectului: |
|
|
Topicul asta ar merge mai bine la MySQL (nenea moderatoru', muta si matale topicu').
Primary Key:
De cele mai multe ori e necesar sa se poata identifica cu exactitate o anume inregistrare intr-un tabel. Primary Key este o cheie (o coloana sau mai multe coloane) care identifica in mod unic fiecare inregistrare.
De exemplu:
NUME PRENUME
Ion Vasile
Ion Gheorghe
Ion Vasile
In cazul tabelului de mai sus, nu exista nici o modalitate sa identifici la care inregistrare se refera "Ion Vasile". Pentru a reusi asta, mai adaugi o coloana la tabel, care va lua valori unice pentru fiecare inregistrare si, astfel, poti identifica o anume inregistrare folosind valoarea acestei coloane.
De exemplu:
ID NUME PRENUME
1 Ion Vasile
2 Ion Gheorghe
3 Ion Vasile
Ei, in cazul asta, poti defini ca Primary Key coloana ID.
Key (Index):
Rolul cheilor care nu sunt Primary Key este, in general, sa permita accesul iute la valorile din tabel.
In cazul de mai sus (desi aici nu e evident, dar la multe inregistrari se simte), in cazul in care creezi o cheie (index) pe coloana Prenume, in cazul unui SELECT in care la WHERE apare Prenume, motorul de baze de date va reusi sa elimine iute din inregistrarile returnate pe cele care nu se conformeaza conditiei.
De exemplu:
SELECT Nume, Prenume FROM table WHERE Prenume = 'Gheorghe';
In cazul query-ului de mai sus, daca n-ar exista index-ul pe coloana Prenume, motorul de baze de date trebuie sa analizeze fiecare inregistrare in parte pentru a determina daca Prenume este sau nu 'Gheorghe'.
In cazul in care ai creat un index pe coloana Prenume, motorul de baze de date va folosi index-ul si va determina MULT mai repede inregistrarile care au ca Prenume 'Gheorghe'.
Felul in care definesti indecsii pentru tabele complexe e o chestiune de experienta (nu orice cheie accelereaza orice query, ba dimpotriva, exista posibilitatea sa incetineasca anume query-uri).
Numa' bune. |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|