Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wydajnosc: 1 tabela vs wiele tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
mbik
Witam,

Mam dylemat dot. konstrukcji DB przechowujacej inf. nt. roznych grup produktow, kazda grupa opisana jest przez unikalne parametry, ich ilosc sie zmienia.

Rozwiazania (przedst. w uproszczeniu):
a) wiele tabel (np. 200, srednio kazda ok. 8pol x 6rekordow),
cool.gif jedna tabela przechowujaca wszytskie dane (200x8x6=ok 10000 rekordow).

Przede wszytskim zastanawia mnie wplyw ilosci tabel z rozw. a) na wydajnosc DB / zasobozernosc / itp.
questionmark.gif?
mbik
Widze, ze trafilem na niezbyt popularny temat.
Sprobuje inaczej postawic pytanie:
czy istnieja przeciwwskazania do tworzenia/przechowywania duzej ilosci (kilkadzisiat-kilkaset) tabel w mysql / innych systemach DB?
itsme
ograniczenia mysql
60 tys tabel oraz 2 000 000 000 rekordow
DeyV
Tak naprawdę jedynym przeciwskazaniem jest wygoda w obsłudze. Szczerze mówiac - ja czuję się przytłoczony, gdy np. PHPMyAdmin wywali mi bazę w której jest kilkadziesiąt tabel, a każda z nich zawiera po 2 wiersze...
Również koszystanie z takiej struktury zazwyczaj jest dosyć nieprzyjemne. Stąd zazwyczaj lepiej jest posiadzieć chwilę dużej nad strukturą i relacjami pomiędzy już istniejacymi tableami, niż tworzyć nowe. Przecież kiedyc moze się pojawić konieczność przerobienia tego systemu, przeniesienia danych - stąd lepiej mieć wmiarę zrozumiałą konstruckję.
Innych przeciwskazań nie ma...
mbik
itsme/ nie chodzilo mi ograniczenia mysql, a o ew. wplyw ilosci tabel na wydajnosc/szybkosc/itp systemu: np. byc moze sam fakt zdefiniowania tabeli powoduje zarezerwowanie dla niej pewnej ilosci zasobow przy starcie serwera. I nie ma znaczenia, czy zawiera ona dane, czy tez nie. Domyslam sie, ze tak jest, ale nie znam skali tego dzialania. Czy straty z tego tytulu sa b. istotne, czy tez nie. Czy lepszym rozw. jest 1 tabela (tutaj pojawia sie straty na przesuzkiwaniu i wiekszy indeks).

DeyV/ rozw. oparte na 1 tabeli (dokladniej kilku) tez mi sie bardziej podoba ze wzgl. na prostsza strukture db, wieksza finezje konstrukcji(subiektywnie ;-) oraz intuicyjne przeczucie, ze to rozw. bedzie wydajniejsze w ogolnym rozrachunku. Ale chce poznac druga strone medalu. Moge sie mylic.
dragossani
Rozwiązanie z 1 tabelą jest bezdyskusyjnie wydajniejsze. 10000 rekordów to jeszcze nie problem. Pracowałem na MySql z tabelą na 6 000 000 rekordów i dawał sobię radę. Indeksy na polach zawężających zbiór do odpowiednich grup jeszcze podniosą wydajność.
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.