![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 24.06.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam taki kod...
Niby nic skomplikowanego...
Dodam że $kol może mieć wartość co najwyżej 3... Więc razem powinno wygenerować max 12 zapytań. Dlatego, że przy $kol=3 , zapytanie $zo1=mysql_query("select * from prod where nazwa='".$nazwa."'"); też zwróci 3 rekordy Więc za 1 obrotem for wykona 3 zapytania z pętli while (albo insert albo update w zależności od warunku if)... Moje pytanie brzmi: czy i jak można zoptymalizować tą pętle, żeby generowała jak najmniej zapytań do bazy? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 24.06.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
ok, z tym CRC podpowiedziałeś mi coś chyba podobnego i zrobiłam klucz który łączy te 2 kolumny... jej zawartość:
'id_userNazwa.pliku' i jest on unikalny jednak nie aktualizuje mi danych... mam zapytanie: Kod insert into down (id_prod, id_user, plik, crc, koniec, pobran) values ('bzdury', '1', 'bz.php', '1bz.php', koniec=DATE_FORMAT(TIMESTAMPADD(DAY,+7,now()), '%Y-%m-%d'), pobran='20') ON DUPLICATE KEY UPDATE crc=VALUES(crc) OK nie dodaje nowego rekordu, ale też nie aktualizuje istniejącego... Na pytanie co to ma robić:
Generalnie jest to do pobierania i generowania unikalnych linków do określonego pliku. Dany użytkownik może ściągnąć plik max X razy, i link jest aktywny X dni. hmm pytanie czy zapytanie z ON DUPLICATE KEY UPDATE rzeczywiście coś optymalizuje... Bo w moim przypadku w pętli while wykonuja sie 2 zapytania... jedno wybierające a drugie od warunku dodające lub aktualizujące... a znalazłam, że ON DUPLICATE KEY UPDATE generuje 2 zapytania do bazy - pierwsze dodające i drugie [jeżeli wpis istniał] aktualizujące [tak zrozumiałam]... więc pozbywam się selecta i warunków [2 zapytań]... zamieniam na jedno zapytanie, generujące 2 zapytania do bazy z ON DUPLICATE KEY UPDATE?? => http://forum.php.pl/index.php?showtopic=94...rt=#entry566638 Ten post edytował poczatkujaca12 25.06.2010, 00:48:38 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 10:11 |