Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jaka baza? - 30 mln rekordów
Forum PHP.pl > Forum > Bazy danych
Dopler
Bardzo proszę o pomoc - jako dla kompletnego laika - o wybór bazy danych.

Całość będzie się składać z kilku tabel

1. 10 mln max. - ok 20 kolumn różnego typu, w tym jedna "długi tekst"
2. 30 mln - tylko 3 kolumny liczbowe (każdy do 8 cyfr)
3. 10 tys - tylko 3 kolumny
4. 10 tys - tylko 3 kolumny
5. 100 tys - 10 kolumn różnego typu
6. 10 mln - 5 kolumn (cyfry i długi tekst)
(będzie potrzebna jeszcze baza zdjęć - ale to chyba załatwię osobną bazą.)

Wyszukiwanie będzie się opierało głównie na wybieraniu rekordów po id, ale też będzie wyszukiwanie pełnotekstowe po jednym z pól tabel 10-milionowych

Pytanie moje piszę po to aby ogólnie wiedzieć jakiego specjalistę powinienem zatrudnić.

Chcę jeszcze powiedzieć, że w tej chwili dysponuję typowym serwerem wirtualnym średniego rozmiaru. Być może będzie trzeba zmienić tę opcję - też prosiłbym tu o poradę zważywszy na minimalizację kosztów.
Pyton_000
Każda

Wszystko zależy od zaprojektowania BD.
Dopler
to tak żeby mieć pewność
MySQL się nadaje - i będzie działać w miarę szybko i nie przeciąży mi ograniczonych możliwości serwera (jeśli się dobrze zaprojektuje) ?
Na forach piszą, że już przy 1,5 mln się potrafi wywalić - muszę zaprojektować perspektywicznie na lata - nie mogę za rok przepisywać całej bazy.

(Niestety od wczoraj już trochę koncepcja się zmieniła - bo będzie trzeba wyszukiwać niemal za każdym razem w tej tabeli 30-mln)
viking
Oracle.
Jakiej niby odpowiedzi oczekujesz? Nie wiadomo jakie to dane, po czym będą wyszukiwane, jak często zmieniane, jaki masz budżet na to, na jakim serwerze będzie stała baza, ile ramu, jakie dyski. Mam nadzieję że uświadomisz sobie bezsensowność takiego pytania.
Dopler
Spodziewałem się że główną odpowiedzią będzie zjechanie pytającego - bo nie jest profesjonalistą.
Piszę wyraźnie że nie jestem i że to ile będzie RAMu i jakie będą pytania do bazy będzie zależało również od możliwości bazy. Nie wiem czy system będzie bardzo rozwinięty czy mniej.
Opisałem generalne problemy - reszta zależy od podjętych decyzji. Budżet jest skromny - bo to działanie fundacji a nie bogatej firmy.

Co z tego, że opiszę nieprofesjonalnie pytanie jakie mogę zadać w MySQL skoro będzie trzeba postawić całkiem inną bazę!
TAK MOJE PYTANIE JEST NIEPROFESJONALNE!!!!! Gdybym był profesjonalistą to bym się nie pytał!

Tabela 30 mln ma strukturę

id - kolejny
ref - int (nadawany numer najwyższy lub powtórzony jakiś poprzedni)
nr1 - int (1-10.000.000)
nr2 - int (1-10.000.000)
typ - int (1-16)

Najczęściej pytanie będzie wyglądało: wyszukaj typ ostatniego rekordu o najwyższym ref.
Drugie pytanie: wstaw nowy rekord tak aby ref był wyższy o 1 niż najwyższy w bazie.

Cała baza przypomina trochę strukturą Wikipedię - ale zamiast artykułów są małe jednostki informacji (w innych tabelach). Tabela 30-milionowa to połączenia między tymi tabelami.
Wyświetlanie danych to pokazywanie struktury połączonych kilku informacji na podstawie tej 30-mln tabeli.

Używalność będzie średnia np. 1000 użytkowników dziennie. Każdy będzie zadawać kilkanaście pytań (+ booty).
ghost1511
Cytat(Dopler @ 10.04.2014, 13:01:34 ) *
Co z tego, że opiszę nieprofesjonalnie pytanie jakie mogę zadać w MySQL skoro będzie trzeba postawić całkiem inną bazę!
TAK MOJE PYTANIE JEST NIEPROFESJONALNE!!!!! Gdybym był profesjonalistą to bym się nie pytał!

Zadajesz nieprofesjonalne pytanie i oczekujesz profesjonalnej odpowiedzi? Ciekawe biggrin.gif

Tę bazę którą tworzysz to ona już istnieje? Czy dopiero zamierzasz ją tworzyć?
Pytania o serwer są jak najbardziej zasadne, bo najlepsza baza na słabym serwerze niewiele może.
usb2.0
ja czuje biggrin.gif ze pytasz o baze, ale pewnie hosting kupisz jakis gowniany/zwykly

tez bym polecal Oracle, ale zainteresuj sie hostingiem bardziej w tym przypadku
no i powiedz jaki to jest ten skromny budzet, bo moze w ogole powinienes dac sobie spokoj
nospor
@Dopler specjalnie dla Ciebie stworzylem sobie na lapku tabele co napisales. Tabele stworzylem w MYSQL. Liczba rekordow ponad 17mln.
Oczywiscie zalozylem index na pole REF.

Czasy zadan, ktore opisales:
Cytat
Najczęściej pytanie będzie wyglądało: wyszukaj typ ostatniego rekordu o najwyższym ref.

czas: 0.004 sekundy

Cytat
Drugie pytanie: wstaw nowy rekord tak aby ref był wyższy o 1 niż najwyższy w bazie.

Czas: 0.073 sekundy

Takze jak widzisz, baza mysql sobie doskonale poradzi smile.gif

Cytat
Na forach piszą, że już przy 1,5 mln się potrafi wywalić
Wszystko moze sie wywalic przy 1.5 mln. Nawet oracle. A wystarczy do tego tylko zle zaprojektowana baza. Jak juz pisalem mysql dla 17 mln rekordow dla twojej tabeli dziala blyskawicznie, na moim 6-cio letnim lapku smile.gif
vedget
Dopler jezeli juz tak martwisz sie ze MySQL nieda rady to uzyj MongoDB, jak ogarniesz wink.gif przydatne na bazy zdjeci filmow itp
Dopler
Dzięki za wszelkie nieemocjonalne i nie narcystyczne porady.
Zapewne będę mieć pytania bardziej szczegółowe ale - szanując zasady postaram się je zadawać w osobnych wątkach.
Robi wrażenie ten krótki czas reakcji dla pytań - baaaardzo dziękuję za test! i wyrozumiałość.

Co do hostingu to jest to obecnie Kylos - VPS Gold
2048 MB pamięci RAM
4000 GB transferu miesięcznie
100 GB pojemności serwera
3,4 GHz zasoby procesora
vedget
Jezeli ten VPS bedzie obciazony tylko przez serwery Apache i MySQL to wystarczy w zupelnosci. W ciagu dalszym jednak do przechowywania grafiki polecam MongoDB. prawdopodobnie najszybsza baza danych obecnie.
nospor
zacznijmy od tego, ze grafiki nie trzyma sie w bazie tylko na dysku.
aniolekx
robiliśmy testy w firmie i okazuje się ze MongoDB jest zbyt powolna przy insertach
ano
2GB Ram, 40mln rekordów
30mln rekordów dla fulltext searcha na MySQLu
Sorry, ale to nie może się udać smile.gif

Dopler - jeśli zależy Ci na wyszukiwaniu pełnotekstowym to nawet nie myśl o MySQL, a przy takiej liczbie rekordów nastaw się na Elasticsearcha.
I przygotuj się, że ten VPS na nic Ci nie wystarczy. Z 2GB Ramu nic nie uda się osiągnąć :-)

Nospor - a gdzie "baza" (mongodb) trzyma dane? nie na dysku? wink.gif
Hint: GridFS
nospor
Cytat
Nospor - a gdzie "baza" (mongodb) trzyma dane? nie na dysku?
Tak samo jak mysql co nie zmienia faktu, ze trzymanie zdjec/plikow w bazie zazwyczaj jest złym pomysłem
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.