[Doctrine] Dodatkowe zapytanie podczas użycia LIMIT |
[Doctrine] Dodatkowe zapytanie podczas użycia LIMIT |
5.01.2010, 23:22:32
Post
#1
|
|
Grupa: Zarejestrowani Postów: 96 Pomógł: 6 Dołączył: 22.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) |
Zauważyłem dzięki zf+firebug+firephp że gdy używam klauzuli LIMIT w zapytaniach doctrine (wersja 1.2.1) generuje mi dotatkowe zapytanie. Przykład stronicowania (adapter Doctrine w Zend_Paginator):
Wyciągam liczbę wszystkich elementów: Wyciągam 10 pierwszych wyników. Zamiast wyciągnąć dane to wyciąga tylko PK: Dopiero teraz wyciąga wszystkie dane na podstawie PK podając je w klauzuli WHERE:
-------------------- ZF developer
|
|
|
5.01.2010, 23:46:24
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Zapewne baza danych to MySQL? Dzieje się tak ponieważ MySQL nie ma jeszcze zaimplementowanej obsługi LIMIT w podzapytaniach w skutek czego trzeba wykonać osobne zapytanie które skupia się wyłącznie na wybraniu ID rekordów, które będą miały być później zwrócone.
Chodzi o to, że Ty ustawiając limit na 10 w paginatorze(chyba źle to nazwałem) chcesz uzyskać 10 obiektów XYZ, a nie 10 rekordów z bazy. Wszystkie relacje sprawiają, że zwróconych rekordów może być np. 50, ale będą one reprezentować jedynie 10 rekordów XYZ wraz ich relacjami |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 14:30 |