Zum Inhalt springen

Tabellen gleicher Struktur gemeinsam Abfragen


speedi

Empfohlene Beiträge

Hi,

ich war aus Gründen der Performance dazu gezwungen eine sehr große Tabelle in mehrere kleinere gleicher Struktur aufzuteilen. Die Struktur ist die gleiche geblieben nur die Anzahl der Datensätze pro tabelle wurde eben erheblich gesenkt. In sehr seltenen Fällen ist es jedoch nötig alle Datensätze abzufragen, die jetzt in verschiedenen Tabellen liegen.

Wie macht man das am besten?

gruß Daniel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

abhängig ob von der genutzten (nicht genannten) Datenbank unterstützt kannst Du das mit UNION erledigen. Das wird die Performance aber endgültig in den Keller reißen.

Mit UNION muss die Struktur der Tabellen nicht zwangsläufig gleich sein, nur die in der Auswahlmenge aufgelisteten Spalten müssen im Datentyp und der Reihenfolge übereinstimmen.

Gruß,

small-step

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke! Ich werde das gleich mal ausprobieren.

Solang die Abfrage an der Stelle nicht mehr als 10 Sekunden braucht ist mir die Performance an er Stelle zweitrangig. Der Fall tritt nur ein wenn der User eine bestimmte Aktion machen will.

Was das DBMS angeht:

Ich Nutze einen MySQL 5.0.

Der grund wieso ich die Tabelle geteilt hab war, dass ich DB normal mit einer Frequenz von 10Hz abfragen will. Eine abfrage hat aber zuletzt (je nach "Füllstand") bis zu 300ms gebraucht.

Bearbeitet von speedi
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich kann jetzt keine qualifizierte Aussage zur Performance von LIMIT in MySQL sagen, aber eventuell wäre das eine Möglichkeit gewesen. Damit kannst Du die Ergebnismenge einer Abfrage einschränken, also aus 50000 Rückgabewerten beispielsweise 50 machen. Wie Effizient MySQL das aber macht weiß ich auch nicht, schon ewig nichts mehr damit gemacht.

Gruß,

small-step

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Ergebnissmenge habe ich schon soweit eingeschränkt, dass das nicht mehr das Problem ist. Das Problem sind wohl eher die WHERE-Anweisungen.

Aber zurück zum Problem:

Ich hatte eigentlich vor ein GROUP BY über die Gesamte-Ergebnissmenge laufen zu lassen. Aber mit UNION kann ich leider nur einzelne Ergebnismengen zusammenfügen.

Ich denk ich werde mir wohl die Ergebnisse aller relevanzen Tabellen holen und das dann im Programm erst aussortieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Views wären ggf auch noch eine Möglichkeit, obwohl mir das doch sehr gegen das Konzept spricht, wenn Du aus einer Tabelle mehrere identische machst.

Selbst wenn Du 10^10 Datensätze hast, sollte es möglich sein. Hast Du Dir evtl einmal überlegt, dass der DBMS Server nicht performant genug ist, oder ein Cluster sinnvoll wäre.

Und nein, es ist keine gute Idee, das was eine Datenbank macht in die Anwendungslogik zu legen

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...