Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Wydajność czy oszczędność miejsca w bazie?
vonski
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam.

Mam taki problem, albo raczej dylemat.
Sprawa przedstawia się mniej więcej tak:
W bazie danych będę przechowywał pewne wartości (typu float), np. w1, w2, w3, w4, w5. Potrzebuję również sumę tych wartości. I teraz moje pytanie - czy bardziej opłaca się dorobić dodatkowe pole w bazie, np. suma i w nim przechowywać sumę tych wartości, czy lepiej dodawać je za pomocą PHP już w skrypcie? Dodam, że baza danych będzie przechowywała dużo informacji, do kilku tysięcy rekordów.


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




W oby przypadkach nie zaszkodzi dorzucić dodatkowego pola.


--------------------
Go to the top of the page
+Quote Post
berbec
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 7.03.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Wiesz, generalnie raczej idzie się w stronę wydajności, bazy mają tyle wolnej przestrzeni, że mało kto wykorzystuje je na maksa.
Ale..
z drugiej strony jeśli są to proste obliczenia typu dodawanie to nie wiem czy ma to sens.

Ostatnio robiłem taką tabele, która robiła cache pewnych wyliczeń bo wyliczenia na bieżąco trwały strasznie długo. Ale jeśli chodzi o dodawanie samo czy równie proste operacje to bym się nie przejmował.

Pozdr
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(wookieb @ 20.05.2010, 11:38:19 ) *
W oby przypadkach nie zaszkodzi dorzucić dodatkowego pola.

Nie zgodzę się. Wszystko zależy od tego, do czego to pole sumy będzie wykorzystywane. Jeżeli będzie to jedno z pól w warunku WHERE lub będzie używane podczas sortowania to wówczas warto dodać go jako nową kolumnę (z racji użycia indeksu, który może być na niej założony). Jeśli natomiast suma ta będzie tylko wyświetlana w celu informacyjnym to dodatkowa kolumna wydaje się zbędna. Sumę pól można obliczać nie tylko w PHP, ale i bezpośrednio na poziomie SQLa.
Go to the top of the page
+Quote Post
vonski
post
Post #5





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 20.05.2010, 11:45:01 ) *
Jeżeli będzie to jedno z pól w warunku WHERE lub będzie używane podczas sortowania to wówczas warto dodać go jako nową kolumnę (z racji użycia indeksu, który może być na niej założony). Jeśli natomiast suma ta będzie tylko wyświetlana w celu informacyjnym to dodatkowa kolumna wydaje się zbędna.


Dokładnie suma będzie wyświetlana jedynie w celu informacyjnym. W takim razie będę obliczał ją w locie smile.gif
Dzięki wszystkim za odpowiedzi.

pzdr


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
croc
post
Post #6





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Tu nie chodzi wcale o dylemat wydajność/oszczędność miejsca tylko o wydajność/spójność danych. Pole sumy jest w porządku o ile zagwarantujesz, że będzie zawsze aktualna, a tu już łatwo o błędy. Zauważ, że np. skrypty głosowania/oceniania na dużych portalach odświeżają wyniki np. co 3 minuty. Nie wyobrażam sobie żeby liczyły sumy co każde odświeżenie. Tak naprawdę na twoje pytanie nie ma jednoznacznej odpowiedzi - zależy od rozmiaru bazy i jej obciążenia.
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(vonski @ 20.05.2010, 11:51:37 ) *
Dokładnie suma będzie wyświetlana jedynie w celu informacyjnym. W takim razie będę obliczał ją w locie smile.gif

Ok więc jak przyjdzie potrzeba zsumowania tych wszystkich rekordów plus trochę operacji grupowania bądź inne to się odezwij.
Sądzę, że zdarzy się tak NA PEWNO.


--------------------
Go to the top of the page
+Quote Post
vonski
post
Post #8





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 20.05.2010, 12:27:55 ) *
Ok więc jak przyjdzie potrzeba zsumowania tych wszystkich rekordów plus trochę operacji grupowania bądź inne to się odezwij.
Sądzę, że zdarzy się tak NA PEWNO.


Nie, nie zdarzy się - NA PEWNO.


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Taki lekki OT:
Cytat
Dodam, że baza danych będzie przechowywała dużo informacji, do kilku tysięcy rekordów.
Kilka tysięcy rekordów to bardzo niewielka ilość.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 17:10