Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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.


--------------------
Pozdrawiam, Wiesław Płotka oraz zapraszam:
Tworzenie portali internetowych
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
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


--------------------
Nie ma nic stałego prócz zmiany...
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?


--------------------
Pozdrawiam, Wiesław Płotka oraz zapraszam:
Tworzenie portali internetowych
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.


--------------------
Nie lubię jednorożców.
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.


--------------------
Pozdrawiam, Wiesław Płotka oraz zapraszam:
Tworzenie portali internetowych
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 03:01