![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 26.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam baze która 'waży' 1MB (około 4 000 rekordów) i generuje transfer 1-2 GB dziennie, gdy przełącze baze na drugą (identyczna struktura), z tym że o większym rozmiarza - 5MB (około 23 000 rekordów) transfer skacze do nieprawdopodobnego poziomu około 80GB na dobę ! Co może być przyczyną takiego stanu rzeczy ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 4 Dołączył: 7.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
nospor ma racje, uzywaj COUNT a ty nie uzywasz, zamiast tego generujesz transfer przez mysql_num_rows()
poczytaj http://skrypta.pl/porada/dlaczego_unikac_f...sql_num_rows/43 ta funkcja przesyla po raz kolejny wszystkie rekordy i je zlicza a tobie potrzbena jest tylko jedna liczba - ilosc rekordow zatem uzyj mysql'owego COUNT(*) i wykonaj dodatkowe zapytanie ktore zwroci tylko jeden rekord - liczbe rekordow najlepiej to w ogole nie wysylac zapytania (chyba ze z jakis powodow musisz) i sprawdzac czy inkrementowana zmienna np $ilosc_rekordow jest wieksza niz 8, inkrementuj ja przy kazdym wyswietleniu rekordu z tabeli, tym sposobe uzyskasz ilosc rekordow twoj transfer generuje sie pewnie przez ta funkcje mysql_num_rows ktora powoduje ze kazdy zestaw rekordow przesylany jest dwukrotnie do skryptu - ale nie widze reszty kodu wiec porblemow moze byc wiecej |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 11:06 |