lukesh
27.04.2008, 19:41:47
Witam!
Tworzę właśnie system e-learningowy, przeznaczony docelowo dla około 10 tys. użytkowników, z których każdego proces nauki składać się będzie z 10 lub 20 tys. rekordów w bazie danych. W rezultacie daje to niezwykle dużą liczbę rekordów - minimum 100 milionów (o łącznej wadze około 3GB). Domyślam się, że stworzenie jednej tabeli i umieszczenie tam wszystkich rekordów nie jest najlepszym pomysłem, chyba, że się mylę? Proszę o jakąś radę... Czy dobrym rozwiązaniem byłoby przydzielenie każdemu użytkownikowi osobnej tabeli w jednej bazie? Czy będzie trzeba być przygotowanym na obsługę kilku baz danych?
Serwer, na którym będzie pracować strona ma 4 procesory po 1,6 GHz i 8192 MB ramu - czy to wystarczy?
Przyznam się, że nie mam doświadczenia w obsłudze tak dużej bazy danych, więc bardzo proszę o porady i jakies sugestie, jak najlepiej zorganizować strukturę takiej bazy.
MMPrime
27.04.2008, 21:06:34
Niestety taki opis nam nic nie mówi ponieważ nie wiemy jaka jest struktura bazy danych, jakie rekordy będą w niej trzymane, jakie operacje będą najczęściej wykonywane. Na takie pytania musisz sobie odpowiedzieć przed projektowaniem bazy danych.
Najważniejsze, ale o tym przypominać chyba nie muszę to indeksy.
lukesh
28.04.2008, 15:40:05
Przykładowy rekord w bazie danych będzie wyglądał następująco:
|-id----|-id_user|id_jedn|-nr|-data------|
|13231 | 14231 | 10004 | 5 |2009-03-21 |
|---------------------------------------|
... i to razy 100 milionów... ^^ :-)
MMPrime
28.04.2008, 16:38:44
W takim razie spokojnie, większych problemów nie będzie. Trudno tak operować pomysłami na operowanie na dużej bazie danych bo tutaj jest pełno szczegółów które mogą zaważyć.
Domyślam się że będą tutaj jakieś operacje na wyciąganiu aktualnych kursów, dlatego zdublowałbym dane. Czyli wszystko trafia do standardowych tabel, a dodatkowo dane z aktualnego miesiąca są dostępne w tabeli typu MEMORY.
NoiseMc
29.04.2008, 03:53:28
Najlepiej zrobic baze wedlug zalozen teorii baz danych i normalizacji ... bez zbednego kombinowania i tworzenia rzeczy niestandardowych.
Pamietaj zeby uzyc wlasciwych typow pol i odpowiednio pozakladac indeksy i relacje to juz przyspieszy dzialanie.
Jezeli cos zacznie sie ciac to zacznij sie zastanawiac ktore dane mozna keszowac i jak ... czy w plikach czy memcached, a jezeli to nie pomoze to rozloz baze na klastry.
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.