Sqlite3, Abfrage zu langsam

raegtime

Neuer Benutzer
Beiträge
2
Hallo, ich hoffe mir kann hier einer nen Tipp geben wie ich mein Suche schneller machen kann... im Mom. dauert es auf dem iPhone knapp ne Minute bis die Anfrage ein Ergebnis liefert und das ist eindeutig zu lange..

Zum Aufbau meiner Tabellen:

Code:
CREATE TABLE age ( picid SMALLINT NOT NULL DEFAULT "0", catid SMALLINT NOT NULL );

CREATE TABLE categories ( name TEXT NOT NULL, droplist TINYINT NOT NULL );

CREATE TABLE gender ( picid SMALLINT NOT NULL, catid SMALLINT NOT NULL DEFAULT "0" );

CREATE TABLE pictures ( filename TEXT NOT NULL, picid SMALLINT NOT NULL DEFAULT "0", kind SMALLINT NOT NULL DEFAULT "0" );

CREATE TABLE products ( picid SMALLINT NOT NULL, catid SMALLINT NOT NULL DEFAULT "0" );

CREATE TABLE style ( picid SMALLINT NOT NULL, catid SMALLINT NOT NULL DEFAULT "0" );

und hier die SQLite Verknüpfung:

Code:
SELECT pictures . filename
FROM pictures , (
SELECT tab3 . picid
FROM (
SELECT tab2 . picid
FROM (
SELECT tab1 . picid
FROM (
SELECT gender . picid
FROM gender , categories
WHERE categories . oid = gender . catid AND gender . catid = 24 ) AS tab1 , products
WHERE tab1 . picid = products . picid AND catid = 5 ) AS tab2 , age
WHERE tab2 . picid = age . picid AND catid = 28 ) AS tab3 , style
WHERE tab3 . picid = style . picid AND catid = 34 ) AS endtab
WHERE endtab . picid = pictures . picid

ich verknüpfe nur integer bzw smallint werte und durchsuche auch nur nach solchen... am ende gibts zwar noch einen String vergleich aber der ist nicht sonderlich groß (zeitintentiv) denke ich...
 
Werbung:

Walter

Administrator
Teammitglied
Beiträge
453
AW: Sqlite3, Abfrage zu langsam

Was soll denn eigentlich bei dem Select herauskommen? Verstehe Deinen Select nicht so ganz...

Und wieviele Daten sind ca. in den Tabellen? Kenne SqlLite nicht im speziellen, aber sind Indexe auf den Tabellen?
 
Werbung:

raegtime

Neuer Benutzer
Beiträge
2
AW: Sqlite3, Abfrage zu langsam

also zum Sachverhalt (was rauskommen soll).. in der Tabelle Pictures sind wie der Name schon sagt Bilder... die Tabelle Categories beinhaltet verschiedene Kategorien... ein Bild kann auf viele verschiedene Kategorien passen. Mein Select soll ein Bild suchen das auf 4 Kategorien passt da ich im Programm 4 Drop Down
Boxen habe in der man je eine Kategorie wählen soll.

Ich kenne Sqlite auch nur durchs iPhone :) ... bisher sind glaub ich keine indexe erstellt... ich hab die struktur und daten mal über phpmyadmin in eine mysql datenbank gegeben und da dauert ein abruf nur ein Bruchteil einer Sekunde...
 
Oben