Max. Größe zweier Tabellen, um diese Vergleichen zu können



  • Hallo,

    ich möchte zwei MySQL-Tabellen miteinander vergleichen, um darin Übereinstimmungen zu finden. Gibt es dahingehendirgend eine Größe, die die Tabellen in diesem Fall nicht überschreiben dürfen? Oder Optimierungsmöglichkeiten, damit MySQL nicht Millionen von vergleichen machen muss?

    Die Tabellen haben voraussichtlich die Größen von 15.000 und 83.000 Einträgen.
    Das wären ja schon ca. 1,2 Milliarden Vergleiche, oder?

    Freunliche Grüße
    Agamemnon



  • Was willst du denn da genau vergleichen?



  • In den Tabellen stehen Namen und Kontaktdaten. Und ich möchte gucken, ob ich Übereinstimmungen finde. Zu guter Letzt möchte ich prüfen, ob sich bei den Übereinstimmungen was geändert hat, wie zum Beispiel der Wohnort.

    Viele Grüße



  • hm ich denke nicht, dass es da eine Begrenzung gibt(mal von der Hardware abgesehen^^)

    Die Frage hier ist jetzt, müssen die Daten doppelt vorliegen in 2 Tabellen?

    Ach ja udn zu deinen Vergleichen. Wenn du eine Spalte besonders oft brauchst, kann man in den DBMS oft Optimierungen festlegen. Nur weil deine Daten nach außen diese Tabellenform haben, werden sie sicher nicht so in der DB liegen. Eine Methode ist z.B. das intern Bäume angelegt werden über die Primary Keys, um schneller suchen zu können. Aber das ist dann halt davon abhängig. welches System man benutzt.



  • die maximalgröße einer tabelle in mysql ist abhängig vom Betriebssystem.
    wenn dein BS nur dateien mit 100mb anlegen kann dann ist die tabellendatei auch nur max. 100mb groß.

    Um meherer Millionen vergleiche kommt dein RDBMS nicht herum wenn du es so machen willst.
    Das dauert auch sehr lange. Du hast aber nicht viele Daten drin. Kann sein das es "sehr schnell" geht. Überdenke dein DB-Design. STichwort Normalisierung u.s.w.



  • In wie fern soll ich mein Design überdenken?
    Ich benutze MySQL noch nicht sehr lange und weiss daher gar nicht was ich alternativ für Möglichkeiten habe.

    Bin für jeden weiteren Tipp sehr dankbar.



  • Das du nicht den gleichen Inhalt in 2 Tabellen hast.



  • Aber das ist ja genau Sinn der Sache.
    Die eine Tabelle ist ja älter und ich will nun schauen, was sich geändert hat.



  • wenn die tabellen sortiert nach den vergleichskriterien vorliegen sind das ganz bestimmt keine milliarden vergleich.
    nach der sortierung noch max die anzahl der einträge in der größeren tabelle
    und zum sortieren sollte nlogn oder so herhalten.

    wie machst du denn zur zeit den vergleich und wie sehen die tabellen aus?

    eigentlich sollten doch einfach zwei joins ausreichen um einträge ohne entsprechendes gegenstück in der anderen tabelle zu finden.
    wenn die jüngere tabelle nur zusätzliche daten enthält reicht ja sogar einer

    select * from (select * from tabelle_a left join tabelle_b using (kriterien)) where tabelle_b.irgendein_feld is null.

    oder liege ich jetzt ganz falsch?

    jenz


Anmelden zum Antworten