2 Server <-> 1 Datenbank

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 2 Server <-> 1 Datenbank

    Guten Tag,

    habe letztens auf einer größeren Communityseite in den News gelesen, dass sie die privaten Nachrichten auf einen eigenen Server geschoben haben und nun würde mich nur interessieren wie sowas funktioniert, denn wenn man bspw. INNER JOINs verwendet kann man ja schlecht sagen

    Quellcode

    1. SELECT pm.id, u.username FROM server1.pm AS pm INNER JOIN server2.user AS u ON u.id = pm.uid

    oder? Würde mich freuen wenn mir jemand das Rätsel erklärt :P

    Danke!
  • Korrekt.
    Joins über Tabellen die auf physikalisch getrennten Maschinen stehen sind nicht möglich.
    Um Multi Server Anwendungen zu programmieren, musst du schon speziell programmieren.

    Zum Beispiel könntest du vom einen Server alle IDs der Nachrichten laden und vom zweiten Server die Texte hinterherholen.
    Das lohnt sich auch erst bei mehreren Millionen Requests am Tag, oder aber in ganz speziellen Szenarien.

    Ich denke dass das in deinem Fall folgendes Szenario ist:
    Die referentielle Integrität bei der MySQL Engine MyISAM ist nicht garantiert - es gibt keine Transaktionen - dafür benötigt man InnoDB.
    Wenn man hingegen eine Volltextsuche über die Einträge machen will, geht das nur mit MyISAM.
    Daher ist es wahrscheinlich, dass die Daten (per Replikation) auf allen Servern vorhanden sind, die Volltextsuchen jedoch über einen eigenen Suchserver gehandelt werden, der im Gegensatz zu den anderen Server MyISAM nutzt,.

    Lg