![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 6.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pytanie - napisałem klasę, która pobiera dane z jakiegoś kanału RSS i zapisuje do bazy. Problem pojawił się w przypadku warunku niezbędnego podczas dodawania pojedynczego rekordu, a mianowicie sprawdzanie, czy dany rekord już istnieje. W pętli pobierającej wyniki RSS przed dodaniem rekordu do bazy dałem warunek, aby sprawdzono, czy pobrany tytuł newsa znajduje się już w bazie - jeśli tak to, aby nie dodawano go po raz drugi. Metoda jest moim zdaniem nie wydajna bo przy dużej ilości takich newsów daje to np. 20 krotne użycie przeszukiwania bazy w jednej sekundzie. Czy istnieją jakieś inne, wydajniejsze metody? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź datę ostatniej wiadomości w bazie danych i dodawej tylko te później
![]() -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Czy istnieją jakieś inne, wydajniejsze metody? Zrób CRC na permalinka do wpisów, załóż na niego indeks, będzie IMHO najszybciej. ![]() ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 6.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem tak, jak radził bim2.
Zastanawia mnie jeszcze jedna rzecz - mianowicie jeśli data rekordu RSS jest większa od obecnej daty to co należałoby zrobić? Jeśli zamienię tę datę na np. obecną lub nawet obecną pomniejszoną o godzinę to w przypadku metody napisanej przez bim2 może wystąpić problem :/ mianowicie rekordy będą dublowane aż do momentu, kiedy data rekordu będzie mniejsza od obecnej |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pamiętaj że data nie jest obowiązkowa i może jej nie być.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Dlatego oprócz daty wpisu dodawaj też URL i sprawdzaj, czy jest już wcześniej taki w bazie. Wtedy unikniesz zdublowanych wpisów bo zamiast INSERT wykonasz UPDATE (jeśli użyjesz UNIQUE, to wtedy elegancko pójdzie ON DUPLICATE).
Cytat to w przypadku metody napisanej przez bim2 może wystąpić problem Jeśli sprawdzasz obecną datę systemową zamiast daty wpisu, to tak. ![]() Ale spróbuj jeszcze ze sprawdzaniem URL; nie bez powodu podałem Ci, abyś użył CRC. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 18:46 |