abfrage braucht sehr lange

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • abfrage braucht sehr lange

    guten abend,
    ich habe zwei tab.

    twebartikel
    ArtikelID Content Aktiv

    tartikel
    ArtikelID Bezeichnung Preise usw.

    Ich will jetzt in den Tabellen die Spalte Content, Bezeichnung u. Preis durchsuchen lassen - in Abhängigkeit davon, dass der Artikel aktiv ist in Tabelle twebartikel
    PHP-Code:
    SELECT FROM tartikel pro
    inner join
    twebartikel ref
    on ref
    .ArtikelID=pro.ArtikelID
    WHERE ref
    .Aktiv=AND (pro.ArtikelID LIKE '%$suchwort%' 
    OR pro.Bezeichnung LIKE '%$suchwort%' 
    OR pro.Preis LIKE '%$suchwort%'
    Das klappt auch, aber die Abfrage brauch teilw. über 40 Sekunden bis es mal ein Ergebnis rauswirft...

    Vorweg: Ich kann die Tabellen nicht zusammenführen.

    Insgesamt werden ~10.000 Datensätze durchsucht.

    Wie kann ich das optimieren???

    Vielen Dank!

  • #2
    Code:
    EXPLAIN extended SELECT * FROM tartikel pro
    inner join
    twebartikel ref
    on ref.ArtikelID=pro.ArtikelID
    WHERE ref.Aktiv=1 AND (pro.ArtikelID LIKE '%$suchwort%' 
    OR pro.Bezeichnung LIKE '%$suchwort%' 
    OR pro.Preis LIKE '%$suchwort%');
    bringt?

    Du könntest alle 3 Spalten in einer TEXT-Spalten zusammen fügen und dann mit fulltext-search arbeiten (Manual weiß mehr), oder auf eine externe Software zum Suchen ausweichen (z.B. apaches lucene)...
    So oder so, ein Query mit LIKE ist teuer.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar

    Lädt...
    X