![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Napisałem niezbyt skomplikowane narzędzie do sprawdzania, kto skomentował news. Sprawdzanie dotyczy około 100 newsów dla 20 użytkowników, a skrypt wykonuje się od 40 do 60 sekund i wg mnie coś jest nie tak. Albo hosting pracuje bardzo bardzo wolno, albo ja popełniłem jakiś błąd. Na początku skrypt pobiera listę użytkowników i zapisuje do tablicy ich nicki, następnie pętla while po kolei odczytuje kolejne newsy. W pętli while jest pętla for, która sprawdza po kolei każego użytkownika - pobiera komentarz danego użytkownika do danego newsa, gdy nie znajdzie to wiadomo, że nie skomentował, a gdy znajdzie to sprawdza datę, aby było wiadomo po jakim czasie skomentował newsa. W pętli while od newsów od razu jest warunek, że gdy news jest w tablicy ignorowani lub gdy jego premiera jeszcze nie zastąpiła to nie sprawdza tego, tylko wstawia wszystkie, że nie skomentowali (IMG:style_emoticons/default/smile.gif) Tutaj znajduje się kod skryptu: http://wklejto.pl/173709 Z góry dziękuję za pomoc mi w tej sprawie, ponieważ chciałbym, aby to działało sprawnie (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
zadanie 1. Policz ile zapytań wysyłasz do bazy dla w/w 100 newsów i 20 użytkowników (IMG:style_emoticons/default/smile.gif)
---edit--- przyjmij że zawsze zwraca false (IMG:style_emoticons/default/smile.gif) Ten post edytował r4xz 12.09.2013, 19:17:40 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 25.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tych zapytań jest około 2300. Mam inny skrypt, który wykonuje ponad 1800 zapytań i on działa bardzo sprawnie, czas wykonywania kodu to kilka sekund maksymalnie, a tu killkanaście razy dłużej to trwa (IMG:style_emoticons/default/sad.gif)
Ta linijka kodu nie zwraca zawsze FALSE, niby dlaczego tak uważasz? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Napisz jakie jest zadanie tego kodu, co chcesz przy jego pomocy osiągnąć. Na pierwszy rzut oka źle zabrałeś się do problemu i nie ma sensu poprawiać tego kodu. Go trzeba napisać inaczej.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze czy zapytania optymalnie korzystają z kluczy w bazie?
Jeżeli nie to czy nie lepiej pokusić się o pobranie wszystkich komentów (tylko wymaganych pól a nie *) i iterować. Na pewno nie zajedzie to bazy a pamięci wystarczy |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 12 Dołączył: 20.12.2009 Skąd: Siedlce Ostrzeżenie: (0%) ![]() ![]() |
Cytat narzędzie do sprawdzania, kto skomentował news To na 100% da się zrobić jednym zapytaniem. Chyba, że coś nie tak zaprojektowałeś db |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:19 |