Ergebnis 1 bis 6 von 6

Thema: MySQL - Volltextsuche "umgekehrt"

  1. #1
    IPPF-Fan
    Registriert seit
    01.02.2009
    Beiträge
    179

    MySQL - Volltextsuche "umgekehrt"

    N'abend zusammen,

    folgendes Problem:
    Ich habe in einer MySQL-Tabelle (mit insgesamt 14 Millionen Datensätzen) "ABC" stehen, nun soll dieser Eintrag aber auch dann gefunden werden, wenn "ABCDE" oder "ABCDEF" (Länge unbekannt) übergeben wird. Die Suche soll max. innerhalb von 1,5s durchgeführt werden.

    Meine Versuche:
    (Das "ABC" steht in der Spalte "prefix")

    1)
    Code:
    SELECT * FROM tabelle WHERE 'ABCDE' REGEXP concat('^',prefix);
    Dauer: 59,38 s

    2)
    Code:
    SELECT * FROM tabelle WHERE LOCATE(prefix, 'ABCDE') != 0;
    Dauer: 3,17 s

    3)
    Code:
    SELECT * FROM tabelle WHERE instr('ABCDE', prefix) > 0;
    Dauer: 2,8 s

    4)
    Code:
    SELECT * FROM tabelle WHERE 'ABCDE' LIKE CONCAT(prefix, '%');
    Dauer: 3,68 s

    Hat sonst noch jemand eine Idee, den Query weiter zu optimieren?

    Danke und Grüße,
    Philipp

  2. #2
    IPPF-Tausend-VIP Avatar von rmh
    Registriert seit
    06.07.2008
    Ort
    Bayern
    Beiträge
    1.363
    Interessant: Wie lange dauert diese Abfrage?
    Code:
    SELECT spalte FROM tabelle WHERE spalte LIKE '%ABC%';

    Gruß
    R.

    Privat: Dus.net, Tel.: Gigaset C610A-IP [42.075]
    Homeoffice: Personal-VoIP, Placetel, Tel.: Snom 370 [8.7.3.7], Fax: »Brother MFC-7840W«
    ISP: Kabel Deutschland 100/6, Cisco EPC3212, Gateway: »ClearOS [5.2]«, Asterisk [1.8.21]

    »Weitere Infos auf meiner Wiki-Seite«
    TrustedBSD Daemon Copyright 2000 by Leigh Denault. All rights reserved.

  3. #3
    IPPF-Fan
    Registriert seit
    01.02.2009
    Beiträge
    179
    Zitat Zitat von rmh Beitrag anzeigen
    Interessant: Wie lange dauert diese Abfrage?
    Code:
    SELECT spalte FROM tabelle WHERE spalte LIKE '%ABC%';

    Gruß
    R.
    2,62 s.

    Grüße,
    Philipp

  4. #4
    IPPF-Tausend-VIP Avatar von rmh
    Registriert seit
    06.07.2008
    Ort
    Bayern
    Beiträge
    1.363
    Na also, da geht noch was! SQL-Abfragen werden generell schneller, wenn du die Spalte angibst, anstelle per *-Wildcard in allen Spalten zu suchen.

    Privat: Dus.net, Tel.: Gigaset C610A-IP [42.075]
    Homeoffice: Personal-VoIP, Placetel, Tel.: Snom 370 [8.7.3.7], Fax: »Brother MFC-7840W«
    ISP: Kabel Deutschland 100/6, Cisco EPC3212, Gateway: »ClearOS [5.2]«, Asterisk [1.8.21]

    »Weitere Infos auf meiner Wiki-Seite«
    TrustedBSD Daemon Copyright 2000 by Leigh Denault. All rights reserved.

  5. #5
    IPPF-Fan
    Registriert seit
    01.02.2009
    Beiträge
    179
    Ja, aber mit deiner Abfrage würde ich den DS finden, wenn dieser z.B. ABCD lautet, aber mir ist ja quasi mehr und nicht weniger von dem eigentlichen String bekannt (wofür sich dein Query eignen würde)

    Grüße
    Philipp

  6. #6
    IPPF-Tausend-VIP Avatar von rmh
    Registriert seit
    06.07.2008
    Ort
    Bayern
    Beiträge
    1.363
    Ähh, sorry aber ich kann dir nicht folgen? Was willst du mir mit diesem Satz sagen?

    Versuch's mal hiermit:
    Code:
    SELECT * FROM tabelle WHERE MATCH spalte AGAINST ('+ABC* -sonstwas' IN BOOLEAN MODE)
    Schneller geworden?

    Privat: Dus.net, Tel.: Gigaset C610A-IP [42.075]
    Homeoffice: Personal-VoIP, Placetel, Tel.: Snom 370 [8.7.3.7], Fax: »Brother MFC-7840W«
    ISP: Kabel Deutschland 100/6, Cisco EPC3212, Gateway: »ClearOS [5.2]«, Asterisk [1.8.21]

    »Weitere Infos auf meiner Wiki-Seite«
    TrustedBSD Daemon Copyright 2000 by Leigh Denault. All rights reserved.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 02.06.2009, 12:01
  2. Antworten: 4
    Letzter Beitrag: 08.05.2009, 15:38
  3. Keine Anzeige von Dateien unter "Album", "Genre", "Ordner"
    Von Schmiddi im Forum AVM Fritz!Media
    Antworten: 13
    Letzter Beitrag: 15.11.2008, 23:25
  4. Pimp my Wahlregeln: "ist", "enthält", "beginnt mit"
    Von AndreasBorutta im Forum FRITZ!Box Fon: Telefonie
    Antworten: 0
    Letzter Beitrag: 21.01.2007, 10:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •