Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Struktura dużej bazy MySQL
lukesh
post 27.04.2008, 19:41:47
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


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.

Ten post edytował lukesh 27.04.2008, 19:43:02


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
MMPrime
post 27.04.2008, 21:06:34
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

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


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.


--------------------
Go to the top of the page
+Quote Post
lukesh
post 28.04.2008, 15:40:05
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

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


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... ^^ :-)


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
MMPrime
post 28.04.2008, 16:38:44
Post #4





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

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


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.


--------------------
Go to the top of the page
+Quote Post
NoiseMc
post 29.04.2008, 03:53:28
Post #5





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


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.


--------------------
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:47