Dude
Hallo,
ich grüble derzeit über das Thema MySQL-Suche und die dazugehörige Performance nach. Ich nehme als Beispiel mal die Gesichtsbuch-Seite, 800Millionen Nutzer und trotzdem (wie ich finde) sehr sehr schnell.
Doch wie machen die das?
Nehmen wir mal die Suche, dort gibt man bestimmte Keywords (auch getrennt durch Leerzeichen) an und Facebook findet in kurzer Zeit die passenden Ergebnisse, gelistet nach bereits aufgerufenen Seiten, befreundeten Personen oder "vielleicht kennst du schon"-Personen.
Ich stelle mir das so vor, dass ein Cronjob alle paar Stunden alle bereits eingegebenen Suchbegriffe nach Ergebnissen in der Datenbank durchläuft und diese in eine "Suchergebnis"-Tabelle schreibt.
Bei erneuten Suchanfragen müssen dann nicht alle 800Millionen-Nutzer durchlaufen werden, sondern es wird einfach passend zum Keyword die Ergebnisse aus einer Spalte ausgelesen (Loch: dies würde nur gehen, wenn für alle Keywords allgmeine Ergebnisse generiert werden, da jedoch auf jeden Benutzer individuell andere Ergebnisse gelistet werden (z.B. auch bei Google, dort werden Seite auf die man geklickt hat weiter oben angesetzt), kann ich mir nicht vorstellen, dass jeder Benutzer einen eigenen Cronjob hat).
Ob ich damit nun richtig liege oder nicht, können wir nun nicht feststellen, da ich annehme, dass keiner das Vergnügen hatte in die Programmierung von Facebook einzublicken.
Doch vielleicht hat der eine oder andere schon einmal große Projekte realisiert und weiss, wie man performancemäßig soetwas programmieren sollte!?
Ich wäre jedenfalls über hilfreiche Antworten zu der Performancegewinnung z.B. in den Themen: "Freunde finden" oder "Suche", in denen schnell Ergebnisse da sind, dankbar.
LG
ich grüble derzeit über das Thema MySQL-Suche und die dazugehörige Performance nach. Ich nehme als Beispiel mal die Gesichtsbuch-Seite, 800Millionen Nutzer und trotzdem (wie ich finde) sehr sehr schnell.
Doch wie machen die das?
Nehmen wir mal die Suche, dort gibt man bestimmte Keywords (auch getrennt durch Leerzeichen) an und Facebook findet in kurzer Zeit die passenden Ergebnisse, gelistet nach bereits aufgerufenen Seiten, befreundeten Personen oder "vielleicht kennst du schon"-Personen.
Ich stelle mir das so vor, dass ein Cronjob alle paar Stunden alle bereits eingegebenen Suchbegriffe nach Ergebnissen in der Datenbank durchläuft und diese in eine "Suchergebnis"-Tabelle schreibt.
Bei erneuten Suchanfragen müssen dann nicht alle 800Millionen-Nutzer durchlaufen werden, sondern es wird einfach passend zum Keyword die Ergebnisse aus einer Spalte ausgelesen (Loch: dies würde nur gehen, wenn für alle Keywords allgmeine Ergebnisse generiert werden, da jedoch auf jeden Benutzer individuell andere Ergebnisse gelistet werden (z.B. auch bei Google, dort werden Seite auf die man geklickt hat weiter oben angesetzt), kann ich mir nicht vorstellen, dass jeder Benutzer einen eigenen Cronjob hat).
Ob ich damit nun richtig liege oder nicht, können wir nun nicht feststellen, da ich annehme, dass keiner das Vergnügen hatte in die Programmierung von Facebook einzublicken.
Doch vielleicht hat der eine oder andere schon einmal große Projekte realisiert und weiss, wie man performancemäßig soetwas programmieren sollte!?
Ich wäre jedenfalls über hilfreiche Antworten zu der Performancegewinnung z.B. in den Themen: "Freunde finden" oder "Suche", in denen schnell Ergebnisse da sind, dankbar.
LG