Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

richtige Abfrage

Empfohlene Antworten

Veröffentlicht

ich habe zwei tabellen:

tb_1

id(int 3), IP_Ziel (varchar 15),daten (bigint 15)

tb_2

id (int 3), IP_Adresse (varchar 15), KSt (varchar 10),Kunde (varchar 40)

in tb_1 stehen daten passend zu einer IP, über die IP will ich einen JOIN mit tb_2 machen die dort zu einer KSt passt, am ende will ich wissen welche KSt wieviele Daten hat:

SELECT tb_1.IP_Ziel,tb_2.IP_Adresse,tb_2.KSt,tb_2.Kunde,SUM(tb_1.daten) FROM `tb_1`

LEFT JOIN `tb_2` ON tb_1.IP_Ziel=tb_2.IP_Adresse GROUP BY tb_1.IP_Ziel

is dass von der logik her richtig?

is dass von der logik her richtig?

syntaktisch ja. ob logisch korrekt, hängt von der natur von den IPs ab. die müssen natürlich irgendwie matchen. der left join ist auch korrekt, so bekommst du als zugabe allen traffic, der keiner kst-ip zugeordnet werden kann.

-j

syntaktisch ja. ob logisch korrekt, hängt von der natur von den IPs ab. die müssen natürlich irgendwie matchen. der left join ist auch korrekt, so bekommst du als zugabe allen traffic, der keiner kst-ip zugeordnet werden kann.

-j

das Problem ist, das die Originaltabellen riesig (300000 und 40000 Datensätze) sind, d.h. die Abfrage dauert...

Deshalb habe ich mir jeweils nur einen kl. Ausschnittt geschnappt, und es gab nur 1 match, kann sein dass gerade in dem ausschnitt nur ein match vorkommt. ich wollte nur bevor ich die große abfrage abwarte wollte ich erst einmal testen und nachhaken...

das Problem ist, das die Originaltabellen riesig (300000 und 40000 Datensätze) sind, d.h. die Abfrage dauert...

300k und 40k würde ich nicht gerade riesig nennen. welches dbms ist denn im einsatz?

sind die am join beteiligten spalten indiziert?

-j

300k und 40k würde ich nicht gerade riesig nennen. welches dbms ist denn im einsatz?

sind die am join beteiligten spalten indiziert?

-j

dbms: MySQL

wenn ich die betreffenden Spalten (tb_1.IP_ziel, tb_2.IP_Adr)indizieren will, dauert das ewig (stunden!) oder ich mache was falsch.

phpmyAdmin betreffende Spalte bei Aktion indizieren.

per sql-Abfrage (... ADD INDEX (IP_Adr));habe ich es noch nicht versucht, wird wahrscheinlich auf selbe rauskommen, ich muss die komplette spalte indizieren (komplette IP)

dbms: MySQL

wenn ich die betreffenden Spalten (tb_1.IP_ziel, tb_2.IP_Adr)indizieren will, dauert das ewig (stunden!) oder ich mache was falsch.

ohne indexing wird der join sehr teuer, da beide tabellen komplett gelesen werden müssen.

wenn alleine das indizieren so lange dauert, dauert der join mindestens! ebenso lange. ich kann mir aber nicht vorstellen, dass mysql beim indizieren derartig langsam ist. oracle indiziert 400k zeilen in 5s, mysql dürfte ähnlich schnell sein. ich würde in der mysql-config und im plattensubsystem die ursache suchen.

-j

ohne indexing wird der join sehr teuer, da beide tabellen komplett gelesen werden müssen.

wenn alleine das indizieren so lange dauert, dauert der join mindestens! ebenso lange. ich kann mir aber nicht vorstellen, dass mysql beim indizieren derartig langsam ist. oracle indiziert 400k zeilen in 5s, mysql dürfte ähnlich schnell sein. ich würde in der mysql-config und im plattensubsystem die ursache suchen.

-j

also lag warscheinlich an meinem mysql server, hab in neu gestartet und siehe da die indizierung war in ein paar sekunden gegessen und die abfrage funzt jetzt auch so wie sie soll, danke

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.