Ich habe eine Idee, die ich noch nicht umgesetzt habe, weil ich befürchte, dass ich auf dem Holzweg bin... vor allem, weil das Googeln zu diesem Thema so wenige Ergebnisse liefert.
Grundsätzlich habe ich einige SQL-Abfragen, die langsam sind, zum großen Teil, weil sie Unterabfragen haben, die zeitaufwendig sind. Zum Beispiel könnten sie Dinge tun wie "Gib mir eine Anzahl aller Fahrräder, die rot sind und von Jungen im Alter von 10-15 Jahren gefahren werden". Das ist aufwendig, weil es durch alle Fahrräder schwappt, aber das Endergebnis ist eine einzige Zahl. Und in meinem Fall brauche ich diese Zahl nicht wirklich zu 100 % aktuell.
Die ultimative Lösung für Probleme dieser Art scheint darin zu bestehen, eine OLAP-basierte Engine einzusetzen, um diese Permutationen zwischenzuspeichern. In meinem Fall versuche ich jedoch nicht wirklich, die Daten in eine Vielzahl von Metriken aufzuteilen, und ich möchte meine Architektur nicht durch einen weiteren laufenden Prozess/Datenspeicher verkomplizieren.
Also... meine Idee war, diese Unterabfragen in der Datenbank zu speichern. Ich könnte eine Tabelle mit dem Namen "BicycleStatistics" haben, und sie könnte die Ausgabe der obigen Unterabfrage als Name-Wert-Paar der Ein- und Ausgaben speichern.
Ex-Name: "c_red_g_male_a_10-15" Wert: 235
Und einen Mechanismus, der diese Werte bei der Ausführung der Abfragen in diese Tabelle einspeichert.
Ist jemand in dieser Situation gewesen und hat etwas Ähnliches versucht? Der Grund, warum ich denke, eine Lösung wie diese ist wertvoll über die "werfen Sie eine Menge RAM in Ihre DB und lassen Sie die Datenbank behandeln es" ist (A) meine Datenbank ist größer als die Menge an RAM, die ich bequem auf sie werfen kann, und (B) die Datenbank wird sicherstellen, dass ich die genaue richtige Zahl für diese Statistiken erhalten, und mein großer Gewinn, oben, ist, dass ich in Ordnung mit den Zahlen, die ein oder zwei Tage veraltet ist.
Vielen Dank für alle Gedanken und Rückmeldungen.
Tom