Ich bin kaum zu überprüfen, die Ausführungsgeschwindigkeit von zwei Abfragen, zu erklären, analysieren und benchmarken, weil ich Timeout für eine Abfrage bekam, aber ich bin nicht sicher, dass diese Abfrage dies verursacht.ActiveRecord Zählungsanalyse in Schienen Abfrage
queue_count = purchase.purchase_items.where("queue_id = ?", queue.id).count
gleiche SQL-Abfrage
SELECT COUNT(*) FROM "purchase_items" WHERE "purchase_items"."purchase_id" = 1241422 AND (queue_id = 3479783)
so muss ich die Zählung entfernen dann bekam ich eine Lösung, die alle Rekord in Reihe zu nehmen und die Zählung tun dann bekam ich die Abfrage wie diese
queue_count = purchase.purchase_items.where("queue_id = ?", queue.id).all.count
gleiche sQL-Abfrage
SELECT "purchase_items".* FROM "purchase_items" WHERE "purchase_items"."purchase_id" = 1241422 AND (queue_id = 3479783)
habe endlich eine kleine Variation bekommen, als ich mit query analyze und auch mit Benchmark gesucht habe, also war das der richtige Weg? oder mache ich etwas falsch?
Ich habe bereits diesen Index, aber eine weitere Sache, wenn ich analysiere EXPLAIN ANALYZE SELECT COUNT (*) VON Kauf_Elemente WHERE Purchase_ID = 1241422 UND (queue_id = 3479783) diese Abfrage im ersten Treffer zeigt dies Ausführungszeit: 1,088 ms, Sekunde hit this zeigt 0.148 ms an, gibt es irgendeine Logik, die noch einmal überprüft werden muss oder die Ausführungszeit des ersten Treffers korrekt ist? – django
Sie müssen es einige Male ausführen und berechnen f.e. Durchschnitt - ein Versuch reicht nicht aus, um korrekte Daten zu erhalten. Und wenn es 1 ms oder 0,1 ms ist, dann ist es wirklich schnell und definitiv kein Flaschenhals – Esse