wydajnosc: 1 tabela vs wiele tabel |
wydajnosc: 1 tabela vs wiele tabel |
27.03.2003, 12:50:45
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.03.2003 Ostrzeżenie: (0%) |
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), jedna tabela przechowujaca wszytskie dane (200x8x6=ok 10000 rekordow). Przede wszytskim zastanawia mnie wplyw ilosci tabel z rozw. a) na wydajnosc DB / zasobozernosc / itp. ? -------------------- pozdr,
mbik |
|
|
1.04.2003, 10:40:20
Post
#2
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.03.2003 Ostrzeżenie: (0%) |
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? -------------------- pozdr,
mbik |
|
|
1.04.2003, 10:46:10
Post
#3
|
|
Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin |
ograniczenia mysql
60 tys tabel oraz 2 000 000 000 rekordow -------------------- brak sygnaturki rowniez jest sygnaturką
|
|
|
1.04.2003, 10:46:22
Post
#4
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
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... -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
1.04.2003, 14:40:52
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.03.2003 Ostrzeżenie: (0%) |
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. -------------------- pozdr,
mbik |
|
|
1.04.2003, 15:47:25
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) |
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ść.
-------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 19:04 |