Kennt sich jemand mit json und sqlite aus? Ich habe eine Tabelle mit mehreren tausend Einträgen wo in einer Spalte noch ein json als varchar drinsteckt. In einem view wird ein wert daraus extrahiert und in einer extra Spalte angezeigt. Das view brauch mehrere Sekunden beim select aus dem view auch wenn ich limit 1 setze oder eine bestimmte ID selektiere. Ohne json geht das sehr schnell. Es kommt mir fast vor als wird ein where ignoriert und erstmal alles extrahiert.
Andrew G. schrieb: > Es kommt mir fast vor als wird ein where ignoriert und erstmal alles > extrahiert. Ein "EXPLAIN" vor der Query kann da für Klarheit sorgen. https://www.sqlite.org/lang_explain.html https://www.sqlite.org/eqp.html
:
Bearbeitet durch User
DerEgon schrieb: > Welche sqlite-Version kennt json? "The JSON functions and operators are built into SQLite by default, as of SQLite version 3.38.0 (2022-02-22). They can be omitted by adding the -DSQLITE_OMIT_JSON compile-time option. Prior to version 3.38.0, the JSON functions were an extension that would only be included in builds if the -DSQLITE_ENABLE_JSON1 compile-time option was included. In other words, the JSON functions went from being opt-in with SQLite version 3.37.2 and earlier to opt-out with SQLite version 3.38.0 and later."
Die Doku sagt, dass sqlite JSON mit 1 GB/s Parsen kann. Entweder ist das JSON also sehr groß, oder der Plan ist Mist. Oder es ist ein echter Bug.
Andrew G. schrieb: > Kennt sich jemand mit json und sqlite aus? Ich habe eine Tabelle mit > mehreren tausend Einträgen wo in einer Spalte noch ein json als varchar > drinsteckt. In einem view wird ein wert daraus extrahiert und in einer > extra Spalte angezeigt. Das view brauch mehrere Sekunden beim select aus > dem view auch wenn ich limit 1 setze oder eine bestimmte ID selektiere. > Ohne json geht das sehr schnell. > > Es kommt mir fast vor als wird ein where ignoriert und erstmal alles > extrahiert. Und wenn du nicht aus dem View selektierst, sondern direkt aus der Tabelle?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.