![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Hej mam zapytanie, które wykonuje się dość długo
ze względu na zawarte 3 podzapytania, W wygląda to mniej więcej tak:
Jak widać podzapytania operują na tej samej (podrzędnej) tabeli a na dodatek łaczą się tabelą główną za pomocą tej samej pary kluczy tj tabela2.pole = tabela1.pole Czy w związku z tym, można było by inaczej sformułowac zapytanie żeby się szybciej wykonywało niż teraz ? Ten post edytował php programmer 19.06.2007, 12:36:07 |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
Ja bym utworzył dodatkowe tabele na liczniki i dla sum. Wtedy przy dodaniu rekordu do odpowiedniej tabeli inkrementujesz odpowiednie pole w tabeli licznik, za pomocą wyzwalacza oczywiście, tak samo z sumą. Potem wyciągnięcie tych danych nie stanowi problemu, jeśli masz liste pól, po których wyciągasz. Bo o ile funkcja sum() działa w miare przyzwoicie to funkcja count() ślamazarzy przy dużej liczbie rekordów
![]() -------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 1 Dołączył: 13.04.2003 Skąd: z ławki przed blokiem Ostrzeżenie: (0%) ![]() ![]() |
dokładnie jak mówi zblakany nie ma tutaj co optymalizowac... napisac kilka trigerkow i ON INSERT ON DELETE i po problemie
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:39 |