Ich schreibe eine Abfrage, um Spielerverbote aus einer anderen Tabelle auszuwählen, aber erstens dauert es sehr langsam 7-14 Sekunden und zweitens gibt es ungültige Zeilen zurück.MySQL Query gibt ungültige Zeilen zurück und sehr langsam
Die erste Abfrage lautet wie folgt:
SELECT *
FROM sourcebans.sb_bans
WHERE removetype IS NULL
AND removedon IS NULL
AND reason NOT LIKE '%[FragSleuth] Duplicate account%'
AND ip IN(SELECT DISTINCT ip
FROM fragsleuth.history
WHERE trackingid = "ad000c3803b48190aabf382e01b957c9")
OR authid IN(SELECT DISTINCT steamid
FROM fragsleuth.history
WHERE trackingid = "ad000c3803b48190aabf382e01b957c9")
Die zweite Abfrage ist als
folgtSELECT * FROM `history` WHERE trackingid = "ad000c3803b48190aabf382e01b957c9"
Und ein paar Screenshots zu zeigen, was ich meine: First QuerySecond Query
In screenshot 1 Sie können sehen, dass es eine Zeile zurückgibt, wo der removedon und removeType nicht null ist, wenn ich gefragt habe Abfrage, um nur Zeilen mit NULL zurückzugeben.
Ich habe auch Angst, dass in der History-Tabelle doppelte Einträge für die Spalten steamid und ip, die die Abfrage verlangsamen könnte, gibt es eine Möglichkeit, die Abfrage nur Zeilen mit einer eindeutigen IP oder Steamid basieren auf die Tracking-ID?
Jede Hilfe würde sehr geschätzt werden.
Dank
Edit: Ich mit Hilfe überwältigt bin, Dank @maraca, @Skorpioh und @ Adam Silenko, ist die Abfragezeit jetzt weniger als eine Sekunde!
Und Sie brauchen wahrscheinlich ein '(' before 'ip' und ein' '' '' am Ende. – maraca