Ich überprüfe meinen Code und stelle fest, dass ich sehr viel Zeit damit verbringe
- Entnahme von Zeilen aus einer Datenbank,
- Formatierung als XML,
- AJAX GET zum Browser, und dann
- Konvertierung zurück in ein gehashtes Javascript-Objekt als mein lokaler Datenspeicher.
Bei Aktualisierungen muss ich den Vorgang umkehren (außer dass ich POST statt XML verwende).
Nachdem ich gerade angefangen habe, Redis zu betrachten, denke ich, dass ich eine enorme Menge an Zeit sparen kann, indem ich die Objekte in einem Key-Value-Speicher auf dem Server speichere und nur JSON verwende, um direkt zum JS-Client zu übertragen. Aber mein schwacher Geist kann nicht vorhersehen, was ich aufgeben, indem Sie eine SQL-DB (d.h. ich habe Angst, die GROUP BY/HAVING-Abfragen aufzugeben)
Für meine Daten habe ich:
- many-many-Beziehungen, d.h. obj-tags, obj-groups, etc.
- Abfrage von Objekten nach einer Kombination von solchen, d.h. WHERE tag IN ('a', 'b','c') AND group in ('x','y')
- self joins, d.h. ALLE Tags für jedes Objekt WHERE tag='a' (sql group_concat())
- viele Outer-Joins, d.h. OUTER JOIN rating ON o.id = rating.obj_id
- und Feeds, die eine Stärke von REDIS zu sein scheinen
Wie mischt man erfolgreich Key-Value- und SQL-DBs?
Ist es zum Beispiel praktisch, eine große Liste von obj.Ids aus einem REDIS-Satz mit SQL-Daten zu verbinden, indem man eine SQL RANGE-Abfrage verwendet (d.h. WHERE obj.id IN (1,4,6,7,8,34,876,9879,567,345, ...), oder umgekehrt?
Ideen/Vorschläge willkommen.