![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam taki problem próbuję wygenerować sobie wielką mapę strony. jedna tabela w bazie ma ponad 150 tysięcy rekordów. Problem jest taki że pobieram w jednym zapytaniu to wszystko następnie chce pobrać inne rekordy z innej tabeli około 30 i wywala przepełnienie pamięci (memory_limit). dlaczego Propel nie zwalnia użytej pamięci w pierwszym zapytaniu ? Próbowałem na wszystkie sposoby to jakoś wyczyścić i nic unset() nie działa, ręce już mi opadają. Nawet jak próbuję pobierać rekordy po kilka tysiaków to dochodzi do tego momentu że wywala błąd memory_limit. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Może dlatego, że wszystko dzieje się w ramach jednego skryptu? Domyślnie zapewne pamięć nie jest zwalniana do czasu zakończenia skryptu, przez co pamięć powoli się zapełnia i w pewnym momencie dochodzisz do limitu. Nie wiem jak ma to rozwiązane symfony, bo tego FW nie używam, ale zapewne masz odpowiednik takich funkcji jak mysql_free_result, które zwalniają pamięć przydzieloną do resource. Myślę, że to w połączeniu z porcjowaniem wyników powinno pomóc przy rozwiązaniu problemu
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 12:57 |