Wir haben alle GTFS-Architektur zu Maria DB-Tabellen konvertiert.SQL Query dauert 100% CPU - Maria DB
https://developers.google.com/transit/gtfs/examples/gtfs-feed
So haben wir Tische wie - stop - Reise - Stop_Time - etc
Dann haben wir eine SQL-Abfrage alle Register nach dem aktuellen Anschlag zu finden, so verwenden wir die folgenden Abfrage
SELECT DISTINCT t2.stop_id
FROM (SELECT stop_id,
trip_id,
stop_sequence
FROM stop_time
WHERE stop_id IN :stopIds) t1
inner join (SELECT stop_id,
trip_id,
stop_headsign,
stop_sequence
FROM stop_time
WHERE trip_id IN (SELECT trip_id
FROM stop_time
WHERE stop_id IN :stopIds)) t2
ON t2.trip_id = t1.trip_id
AND t2.stop_sequence > t1.stop_sequence;
Allerdings, wenn ich diese Abfrage für jede laufen stoppen sie in einer anderen Tabelle einmal füllen sie das Ergebnis se verwenden t später, leider geht die CPU-Auslastung auf 100%
Ich bin mir nicht sicher, warum, danke im Voraus.
Es gibt eine Menge Joins hier, also wenn Sie viele Datensätze haben, könnte das durch Milliarden von Datenzeilen gehen. – tadman
Warum liefern wir einige 'Beispieldaten' und das' erwartete Ergebnis' (siehe https://stackoverflow.com/help/mcve) * Vielleicht könnten Sie jetzt LEAD() OVER() verwenden, da Sie jetzt Mariadb * –
@ verwenden tadman irgendwelche Vorschläge zur Optimierung der Abfrage? –