Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.

 
Căutare detaliată

31103 Mesaje în 2866 Subiecte- de către 3956 Utilizatori - Ultimul cont creat: louisnorris031

Iulie 30, 2010, 06:27:38
GAZDUIRE.infoWeb Design/DevelopmentSQLoptimizare baza de date
Pagini: [1]   În jos
Imprimă
Ajutor Subiect: optimizare baza de date  (Citit de 12933 ori)
Stefan.L
Vizitator
*

Karma: +0/-0
Mesaje: 6


Vezi Profilul Adresa de email
« : Martie 02, 2008, 03:09:18 »

Salut,
Problema este urmatoare:
1 baza de date cu ~15-20 tabele de forma:
===================
id | nume | valoare
===================
scriptul php este de forma:
Cod:
@mysql_query("update tabel set valoare = valoare + 1 where id = '$id' && nume = '$nume'");
if(mysql_affected_rows() == 0) {
   @mysql_query("insert into nume values ('$id' , '$nume' , '1')");
}
La fiecare tabel se executa acest script.   Intrebarea mea este cum ar trebui sa setez indecsi.   Sa setez id sau id, nume.   
Multumesc mult
p.  s.   se executa foarte multe query-uri in baza de date.   ~3-4 mil pe zi, iar baza de date o sa fie destul de mare.
« Ultima modificare: Martie 02, 2008, 03:10:55 de către lucaci » Memorat
Bogdan.eGazda
Webmaster
****

Karma: +13/-0
Mesaje: 944

EGAZDA SRL

bogdan_martinescu
Vezi Profilul WWW
« Răspunde #1 : Martie 03, 2008, 12:32:59 »

id-ul nu este un camp unic?
Daca da fa-l primary key (ceea ce creeaza automat si index) si prima linie fa-o asa:
@mysql_query("update tabel set valoare = valoare + 1 where id = '$id');
Memorat

http://www.egazda.ro - Gazduire web profesionala pe servere in Romania.
Stefan.L
Vizitator
*

Karma: +0/-0
Mesaje: 6


Vezi Profilul Adresa de email
« Răspunde #2 : Martie 03, 2008, 09:25:10 »

Nu este camp unic.  Pot exista mai multe inregistrari cu acelasi id, doar cu nume diferite.  problema este ca trebuie sa afisez din date si la select ma gandeam ca trebuie si campul nume sa fie index, insa nu vr sa imi ingreuneze scriptul de mai sus pt ca ala este scriptul principal.
Memorat
Bogdan.eGazda
Webmaster
****

Karma: +13/-0
Mesaje: 944

EGAZDA SRL

bogdan_martinescu
Vezi Profilul WWW
« Răspunde #3 : Martie 03, 2008, 11:07:49 »

Din pacate daca id nu este unic structura tabelelor este proiectata foarte prost.
Solutie in acest caz ar fi sa setezi primary key pe combinatia id + nume
Memorat
Stefan.L
Vizitator
*

Karma: +0/-0
Mesaje: 6


Vezi Profilul Adresa de email
« Răspunde #4 : Martie 03, 2008, 11:32:20 »

dap cred ca solutia este id + nume primary.   
tabelele sunt de forma:
id | browser | valoare
id | referrer | valoare
id | culori | valoare

scriptul este unul de statistici iar id este legatura dintre toate aceste tabele.   in fiecare tabel exista mai multe inregistrari care corespund aceluiasi id, ex:
1 | Firefox | 103
2 | Firefox | 319 
1 | Opera | 56
.  .  .  . 
multumesc mult pentru ajutor
Memorat
Pagini: [1]   În sus
Imprimă
Schimbă forumul:  

Theme orange-lt created by panic