Ich verwende die folgende MySQL-Abfrage in einem PHP-Skript für eine Datenbank, die über 300.000.000 (ja, dreihundert Millionen) Zeilen enthält. Ich weiß, dass es sehr ressourcenintensiv ist und es ewig dauert, diese eine Abfrage auszuführen. Weiß jemand, wie ich entweder die Abfrage optimieren kann oder die Informationen auf andere Weise schneller bekommen kann?Wie kann ich diese MySQL-Abfrage optimieren?
Ich muss in der Lage sein, eine ganze Zahl zwischen 1 und 15 anstelle der 14 in MID() zu verwenden. Ich muss auch in der LIKE
-Klausel Zeichenfolgenlängen innerhalb des gleichen Bereichs übereinstimmen können.
Tabelle Info:
games | longint, unsigned, Primary Key
win | bit(1)
loss | bit(1)
Beispiel Abfrage:
SELECT MID(`game`,14,1) AS `move`,
COUNT(*) AS `games`,
SUM(`win`) AS `wins`,
SUM(`loss`) AS `losses`
FROM `games`
WHERE `game` LIKE '1112223334%'
GROUP BY MID(`game`,1,14)
Vielen Dank im Voraus für Ihre Hilfe!
Warum die GROUP BY-Klausel löschen? Er möchte, dass COUNT und SUM durch die 14. Stelle der Spielspalte geteilt werden. – mlarsen
@mlarsen: Ich habe es nicht zuerst bekommen und die Antwort gelöscht. Jetzt ist alles neu geschrieben. – Quassnoi