Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> duplikaty w bazie - zapobieganie powstawaniu, jakie sa efektywne sposoby?
Dagger
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 4.02.2003
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


Witam!
Mam skrypt w ktorym codziennie jest dopisywanych prawie 4tys. wpisow... zawsze gdy jest uruchamiany skrypt musze sprawdzic czy dany link juz nie istnieje w bazie ...
robie to tak:
  1. <?php
  2.  $ile = mysql_num_rows(mysql_query (&#092;"SELECT id FROM linki WHERE adres='\".$adres.\"';\"));
  3.  if($ile==0){
  4.  $zapytanie = &#092;"INSERT INTO linki (adres,tekst,strona,data) VALUES ('\".$adres.\"','\".$tekst.\"','coolpage','\".$x_data.\"')\";
  5.  $wykonaj = mysql_query($zapytanie, $p);
  6.  }
  7. ?>

ale przy coraz wiekszej bazie takie sprawdzanie robi sie coraz bardziej maloefektywne i wykonywanie skryptu czesto nie miesci sie w dozwolonym czasie na serwerze.
Macie pomysly jak mozna to zrobic lepiej?
Z gory dzieki za pomoc.
Go to the top of the page
+Quote Post
shima
post
Post #2





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

Ostrzeżenie: (0%)
-----


Cytat(Dagger @ 2005-02-17 12:31:59)
Witam!
Mam skrypt w ktorym codziennie jest dopisywanych prawie 4tys. wpisow... zawsze gdy jest uruchamiany skrypt musze sprawdzic czy dany link juz nie istnieje w bazie ...
robie to tak:
  1. <?php
  2.  $ile = mysql_num_rows(mysql_query (&#092;"SELECT id FROM linki WHERE adres='\".$adres.\"';\"));
  3.  if($ile==0){
  4.  $zapytanie = &#092;"INSERT INTO linki (adres,tekst,strona,data) VALUES ('\".$adres.\"','\".$tekst.\"','coolpage','\".$x_data.\"')\";
  5.  $wykonaj = mysql_query($zapytanie, $p);
  6.  }
  7. ?>

ale przy coraz wiekszej bazie takie sprawdzanie robi sie coraz bardziej maloefektywne i wykonywanie skryptu czesto nie miesci sie w dozwolonym czasie na serwerze.
Macie pomysly jak mozna to zrobic lepiej?
Z gory dzieki za pomoc.

Zrób to pole UNIQUE
Go to the top of the page
+Quote Post
Dagger
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 4.02.2003
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


czyli jesli pole adres ustawie jako UNIQUE to gdy bede wstawial wpis do bazy za pomoca INSERT to taki wpis zostanie pominiety? czy zastapiony?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Nie pozwoli ci go dodac -- zwroci FALSE, ale pamietaj zeby pozbyc sie powtorek zanim bedziesz dodawal UNIQUE.
Go to the top of the page
+Quote Post
Kocurro
post
Post #5





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


A jeśli chcesz robić coś takiego:

jeśli masz rekord to go uaktualnić a jeśli nie masz to wstawic to wtedy używaj: REPLACE

poza tym polecam przeczytanie dużo informacji na temat kluczy itp. gdyż w większych aplikacjach nie używanie kluczy powoduje znaczny wzrost czasu wykonywania zapytań.
Go to the top of the page
+Quote Post
Dagger
post
Post #6





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 4.02.2003
Skąd: Wejherowo

Ostrzeżenie: (0%)
-----


dzieki wszystkim

chodzilo mi o to aby skrypt efektywniej dzialal i to pole UNIQUE powinno pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:01