SQL Datenbank Struktur Facebook Freunde speichern

Kanibal schrieb:
Wenn das was größeres wird, ist womöglich ein NoSQL-Ansatz empfehlenswert - so werden auch die Daten bei Facebook gespeichert. Vertreter sind Redis, MongoDB und mehr.

Die Resourcen, sich da einzuarbeiten, sollten ja bei einem "Geheimprojekt" mit "1.000.000x Downloads" verfügbar sein ;)

Hey Kanibal ,

In der Tat :D! Bombastischer Appname + Geile Idee :D!
Ich sags mal so. Jeder fängt klein an. Aber ich möchte halt von Anfang an alles Richtig haben.
Es wäre bitter wenn ein Größeres Problem entsteht. Und wenn mal etwas Erfolg hat wird es sofort , noch und nöcher Kopiert.
Da ist es wichtig von Anfang an der Erste zu sein bei dem auch alles läuft.

Hab diesen Server für den Anfang (mit SSD Option)
Der Server hat Laut CMD-Line :
CPU GenuineIntel, Intel(R) Xeon(R)CPU X5570 @ 2.93GHz

Unbenannt.PNG

Müsste doch für die Ersten 50k User reichen hoffe ich :p!
Und leider muss auch auf Mysql/Php setzen .
Jetzt ein Neuland betreten würde lange dauern ^^.
 
Zuletzt bearbeitet:
Ich dachte es wird eine App?

Mir wäre neu, dass Android oder iOS in PHP programmierte Apps unterstützt ^^
(oder besser: das man überhaupt Apps in PHP schreiben kann)

Das musst du ja nur fürs BackEnd einsetzen und so wie sich das bei dir anhört, wird die App doch eine Art Spiel, also geht sämtliche Logik doch in der App über die Bühne. Ergo brauchst du das BackEnd nur für Highscore & derarten, da fällt nicht viel zu programmieren an. Je nachdem wie viel Programmier-/Datenbankerfahrung du bis jetzt gesammelt hast, kann man sich da in wenigen Tagen bis Wochen einlesen um es halbwegs zum laufen zu bringen.
Abgesehen davon wäre z.B. MongoDB ja nur eine NoSQL-Datenbankengine. Das läuft ohne Probleme mit PHP und es hört sich nicht gerade an, als würde dein Projekt da ein riesiges ERM benötigen^^

Bei 200GB Speicherplatz sind im übrigen auch Millionen von Nutzern kein Problem. Interessant sind nur die gleichzeitig aktiven Nutzerzahlen und die Anzahl der Queries, die da pro Sekunde reinkommen sowie die Performanz von dem, was du da im Backend codest.
 
Zuletzt bearbeitet:
Klaro ist die App nicht in PHP gecodet. Aber alles Server seitige schon.
Alles was Server seitig ist:

-Login
-highscole tabelle
-facebook freundeliste tabelle
-die App datenbank wird aus dem server aktualisiert. ersten 100 daten sind offline in der app gespeichert.
restlichen daten werden immer wieder aus der mysql tabelle gezogen . sobald der benutzer mit den ersten 100 daten durch ist werden 100 weitere aus der mysql tabelle gezogen.
-highscore tabelle wird nach 20 datensätzen aktualisiert (also der eigene high scrore)
-facebook freund können untereinander "extra punkte" anfordern jedoch maximal 1x am tag
(wie bei candy crush wenn man ein ticket benötigt)
-tages login bringt "extra punkte".
-logt sich jemand mit facebook ein wird er auf dem server registriert seine freundeliste wird abgeglichen.

es geht ja nicht um die 200gb speicher die bekomm ich so nie voll. eher um die ssd um die long querys zu eliminieren.
und ob die garantierten 6gb ram hier ausreichen würden.

Ein bisschen erfahrung hab ich mit servern und "vielen usern" schon gesammelt.
hab eine facebook fanpage mit über 1mio likes. sobald man einen link von seiner webseite postet und dann mal eben 5000-25000 benutzer auf dem server sind weiß ich so ca was passiert. aber zu den zeiten war ich nochn newbie und
mein code war der absolute humbug ^^
 
tender89 schrieb:
mhmm mit (select * from Tabelle where friend1=1 or friend2=1) wähle ich aber alles in der spalte aus.
Mit der UNION variante wäre doch alles schon schon sortiert.
welche variante ist den effizienter?

In dem Fall wäre OR (oder IN) effizienter.
Ich vermute aber einfach mal dass du in den meisten Fällen eh Tabellen-übergreifend arbeiten wirst.

kurze Lektüre zur Effizienz: http://www.sql-server-performance.com/2011/union-or-sql-server-queries/
 
Zurück
Oben