Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Więcej pól czy tabel? Optymalizacja
Forum PHP.pl > Forum > Przedszkole
Dapi
Witam.
Do tej pory tworzyłem małe bazy danych, takie pierdółki. Teraz przyszło mi się zmierzyć z czymś znacznie większym,
dlatego chciałbym prosić was o pomoc pod względem optymalizacji owej bazy. Do rzeczy:

Mam do wyboru: stworzyć 4 tabele po kolejno 32, 8, 13 i 13 pól, albo stworzyć jedną tabelę,
gdzie wszystko upchnę razem i ilość pól wyniesie łącznie 63. Pola będą typu SMALLINT.

Rekordów będzie nie wiele, bo mniej niż 5, ale każdy z nich dziennie będzie aktualizowany po kilkaset razy.
W przypadku rozbicia na 4 tabele daje mi to o 3 zapytania więcej niż w przypadku jednej wielkiej tabeli.
Dane odczytywane będą z bazy 1-2 razy dziennie i będzie to odczyt wszystkich pól z każdego rekordu.

Osobiście stawiałbym na chwilę obecną na jedną dużą tabelę, ale nie mam pojęcia przy jakiej liczbie pól
kończy się zdrowy rozsądek i jakie mogą być (jeśli mogą) minusy takiego rozwiązania?

Czekam na Wasze opinie smile.gif

Pozdrawiam - Dapi
Damonsson
Skoro masz do wyboru zrobić tabelę, gdzie będzie 8 pól i inną gdzie będzie 32. To jak je połączysz to będą wtedy 24 * NULL? To raczej nie jest dobrą opcją.
Dapi
Absolutnie nie, bo każde pole zawierać będzie inne dane, które tak czy tak będą podane. Żadne pole nigdy wartości null nie będzie miało. Tak jak pisałem, mam do wyboru albo wybrać 4 tabele mniejsze, albo jedną dużą. Chodzi jedynie o rozbicie jednej tabeli na 4 mniejsze. Tylko nie wiem, które rozwiązanie będzie optymalniejsze, czy 63 pola w jednej tabeli to aby nie przesada
Damonsson
Czyli chcesz po prostu rozbić tę tabelę? Jeżeli zawsze będziesz aktualizował wszystko i pobierał wszystko, to wtedy jedna duża tabela. Ale jeśli będziesz miał sytuację, że będziesz tylko robił update/select konkretnych pól, to warto rozważyć opcję podzielenia tabeli. A skoro piszesz, że zawsze będziesz pobierał/zmieniał wszystko, to przy rozdzieleniu na kilka tabel, narobisz sobie tylko niepotrzebnych powieleń.

Może Ci się przyda: http://www.mysqlperformanceblog.com/2009/0...ts-performance/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.