Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

la creearea tabelului...
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community