1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Sqlite3, Abfrage zu langsam

Dieses Thema im Forum "SQLite" wurde erstellt von raegtime, 26 November 2009.

  1. raegtime

    raegtime Neuer Benutzer

    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...
     
  2. Walter

    Walter Administrator Mitarbeiter

    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?
     
  3. raegtime

    raegtime Neuer Benutzer

    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...
     
Die Seite wird geladen...

Diese Seite empfehlen