Ich führe SQL-Anfragen auf Tabelle interim_19
mit 67.500 Zeilen. Tabelle ist nicht indiziert und hat 7 Spalten, von denen keine eindeutige/Primärschlüssel sind, weil Hauptdaten Abonent
und idBase
wiederholen, unter allen Daten habe ich wie 7-8 verschiedene idBases
und ~ 10.000 verschiedene Abonents
, und die anderen Daten mögen date
ist nicht zuverlässig in Bezug auf die Einzigartigkeit.Slow SQL INNER JOIN
Das Problem besteht in langsamen inneren Joins auf dieser Tabelle.
Und wenn ich SELECT * FROM interim_19 WHERE idBase IN (1551 , 42286)
ausführen es 1,33 Sekunden dauern werde, und SELECT * FROM interim_19 WHERE idBase IN (1535 , 5406)
1,9 Sekunden dauern wird, ob
SELECT * FROM (SELECT * FROM interim_19 WHERE idBase IN (1551 , 42286))
temp1
inner join
(SELECT * FROM interim_19 WHERE idBase IN (1535 , 5406)) temp2
on temp1.Abonent = temp2.Abonent
dauert ewig - 147-157 Sekunden. Ich verstehe, dass innerer Join jede Zeile mit jeder zweiten Zeile der zweiten Tabelle vergleicht, aber das sollte nicht so lange dauern. OFC es macht Duplikate, aber ich brauche alle 7 + 7 Zeilen, also ...
P.S Ich versuche bereits, es zu indizieren, so dass andere Ratschläge auch willkommen sind.
Ich sehe keinen Grund für die abgeleiteten Tabellen und verbindet die Tabellen direkt. Wählen Sie außerdem nur die Spalten aus, die Sie tatsächlich benötigen. "SELECT *" tut dir keinen Gefallen. –
Ist es mySQL oder SQL Server? Bitte editiere deine Tags –