Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jaka baza? - 30 mln rekordów, Proszę o pomoc w wyborze bazy
Dopler
post 5.04.2014, 23:19:16
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

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


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.


--------------------
Genealogia Polaków
Go to the top of the page
+Quote Post
Pyton_000
post 6.04.2014, 15:52:18
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Każda

Wszystko zależy od zaprojektowania BD.
Go to the top of the page
+Quote Post
Dopler
post 6.04.2014, 22:35:59
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

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


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)

Ten post edytował Dopler 6.04.2014, 22:37:33


--------------------
Genealogia Polaków
Go to the top of the page
+Quote Post
viking
post 7.04.2014, 06:21:02
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


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.


--------------------
Go to the top of the page
+Quote Post
Dopler
post 10.04.2014, 12:01:34
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

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


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

Ten post edytował Dopler 10.04.2014, 12:02:26


--------------------
Genealogia Polaków
Go to the top of the page
+Quote Post
ghost1511
post 10.04.2014, 12:21:03
Post #6





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

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


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.
Go to the top of the page
+Quote Post
usb2.0
post 10.04.2014, 12:25:39
Post #7





Grupa: Zarejestrowani
Postów: 341
Pomógł: 25
Dołączył: 28.09.2008
Skąd: Lublin

Ostrzeżenie: (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

Ten post edytował usb2.0 10.04.2014, 12:26:03
Go to the top of the page
+Quote Post
nospor
post 10.04.2014, 12:32:32
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
vedget
post 10.04.2014, 12:33:20
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.04.2014
Skąd: Szczecin

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


Dopler jezeli juz tak martwisz sie ze MySQL nieda rady to uzyj MongoDB, jak ogarniesz wink.gif przydatne na bazy zdjeci filmow itp
Go to the top of the page
+Quote Post
Dopler
post 10.04.2014, 13:57:14
Post #10





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 30.01.2008

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


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

Ten post edytował Dopler 10.04.2014, 13:59:26


--------------------
Genealogia Polaków
Go to the top of the page
+Quote Post
vedget
post 10.04.2014, 15:08:04
Post #11





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.04.2014
Skąd: Szczecin

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


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.
Go to the top of the page
+Quote Post
nospor
post 10.04.2014, 15:09:23
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zacznijmy od tego, ze grafiki nie trzyma sie w bazie tylko na dysku.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
aniolekx
post 11.04.2014, 08:06:18
Post #13





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


robiliśmy testy w firmie i okazuje się ze MongoDB jest zbyt powolna przy insertach
Go to the top of the page
+Quote Post
ano
post 13.04.2014, 23:47:02
Post #14





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


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


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
nospor
post 14.04.2014, 08:16:09
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 14.08.2025 - 12:45