SoSiker
24.08.2009, 19:25:41
Witam,
Mam pytanko. Obecnie pisze aplikację, która pobiera wiele rekordów około 1000 przetwarza je tworząc dla każdego rekordu po 5-10 informacji w tablicy. Wszystko jest sumowane itp. Niestety czas wykonywania skryptu wynosi powyżej 60s. (jest to nieakceptowalne oczywiście). Czy istnieją jakieś metody optymalizacji takich operacji.
Quantum
24.08.2009, 19:41:09
Jest na to wiele sposobów, optymalizuj same zapytania, obowiązkowo cache-uj ich wyniki, wprowadź stronicowanie.
dr_bonzo
24.08.2009, 20:02:22
@SoSiker: nie mam sily wrzeszczec na ciebie, ale moze raczyl bys pokazac CO robisz i JAK to robisz, bo takto mozna ci odpowiedziec: popraw SQL, rob ile sie da w bazie, joinami itp.
Fifi209
24.08.2009, 20:07:21
1000 rekordów - 60 sek? Coś namieszałeś chyba.
1000 rekordów dla mysql to nic...
SoSiker
24.08.2009, 21:57:53
Właśnie zdaje sobie z tego sprawy, że te 1000 rekordów to nie wiele (nie są one nawet związane jakimiś LEFT JOINAMI) :/ dopiero potem dzieją się różne rzeczy. Chodziłoby mi o zastosowanie Cache, jak miałbym to zrobić?
PS: proszę na mnie nie krzyczeć

kodu nie mogę udostępnić bo nie należy do mnie :/
erix
24.08.2009, 22:29:15
No to jak mamy Ci pomóc? O.o
thek
24.08.2009, 23:11:27
Bez kodu to my możemy jedynie z fusów wróżyć co nie tak. Swoją drogą co ten kod robi, bo ja dziś sam pisałem zapytanie, które mialo połączyć dwie tabele (pierwsza 400 rekordów, druga ponad 1000) i od razu mi robiło update jedne kolumny pierwszej tabeli wartościami z pewnej kolumny 2 tabeli i jakoś nie trwało to specjalnie długo... Tyle to chyba operacje na ogromnej ilości plików trwają. Sam zajeżdżałem bibliotekę GD tworząc obrazki do własnego świata ( custom map w GoogleMaps API ). Ale to było sumarycznie kilkadziesiąt tysięcy plików jpg 256x256 i skrypt chodził kilkanaście minut. Po prostu się tak długi czas działania na bazie w głowie nie mieści...
golaod
25.08.2009, 08:45:06
Po pierwsze po co nam kod php jak mieliśmy Ci pomóc w SQL'u ? Po drugie z tego się nie da niczego konkretnego wyciągnąć bo wygląda to tak jakbyś nam z całego dania które mamy zjeść dał tylko widelec czy talerz. Pokaż wszystkie potrzebne zapytania sql które są wykonywane w trakcie tych 60 sekund. Mi się jednak osobiście zdaje, że zwracasz 1000 wyników i potem dla każdego z nich robisz oddzielne zapytania (nawet kilka niż jedno) które wysyłasz przez php.
golaod
25.08.2009, 09:03:08
Może źle zrozumiałeś moją ostatnią wypowiedź. By pomóc Ci przy zapytaniach SQL potrzebujemy...SQL'a ? Ja nie będę rozgryzać jakie tam magiczne metody są php które mi niby ormem tworzą zapytania. Prosimy zatem grzecznie - choć dziw, że jeszcze się prosić musimy - o ZAPYTANIA SQL.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.