AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Langsamer Like Zugriff
Thema durchsuchen
Ansicht
Themen-Optionen

Langsamer Like Zugriff

Ein Thema von handson · begonnen am 16. Mai 2007 · letzter Beitrag vom 18. Mai 2007
Antwort Antwort
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#1

Langsamer Like Zugriff

  Alt 16. Mai 2007, 09:31
Datenbank: MySQL • Version: 5.x • Zugriff über: MySQLDAC von Microolap
Hallo!

Ich habe mal eine Frage zu einer LIKE Abfrage. Ich benutze einen MySQL Server 5.x.

Wenn ich dieses Statement eintragen, dann ist der Datensatz in Bruchteilen von Sekunden da:

select * from kunden where mandantenid = '000and email like 'info%' limit 100 Verändere ich das Statement ein wenig, dann braucht der Server fast eine Minute, um die Daten auszuspucken:

select * from kunden where mandantenid = '000and email like '%info%' limit 100 Info zur Tabelle:

Anz der DS: ca. 250000
Schlüssel liegt auf den Feldern mandantenid und email

Gibt es da vielleicht irgend einen Trick, wie ich die zweite Abfrage auch performant abfragen kann?

Stephan
Stephan Faust
  Mit Zitat antworten Zitat
daddy

Registriert seit: 9. Sep 2005
Ort: Köln
126 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Langsamer Like Zugriff

  Alt 16. Mai 2007, 09:38
Wiewiele Datensätze enthalten denn die MandantenID '000'? Bei der zweiten Abfrage müssen für EMail auf jeden Fall ALLE Datensätze ausgewertet werden. Der Index auf EMail kann hierfür nicht verwendet werden. Bei der ersten Abfrage dagegen schon.

Gruß Daddy
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Langsamer Like Zugriff

  Alt 16. Mai 2007, 09:39
As designed. Wenn du bei einer Like-Abfrage als erstes Zeichen ein Wildcard hast so muß die Datenbank einen Full-Table-Scan durchführen da kein vorhander Index mehr verwendet werden kann.

Wieviel Speicher darf der MySQL-Server verwenden? Evtl. wird es schneller wenn der Index komplett im Speicher gehalten werden kann und damit "nur" ein kompletter Indexdurchlauf nötig ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Langsamer Like Zugriff

  Alt 18. Mai 2007, 13:06
Mandant 000 ist der Größte und beinhaltet ca. 170000 DS.

Das mit dem Full Table Scan habe ich schon befürchtet, hatte gedacht es gibt dafür noch eine andere Möglichkeit...
Trotzdem Danke erstmal!

Stephan
Stephan Faust
  Mit Zitat antworten Zitat
handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Langsamer Like Zugriff

  Alt 18. Mai 2007, 13:10
Hier die Speicherzuordnung:

read_buffer_size=64K
read_rnd_buffer_size=256K


Ich denke aber, es löst nicht das grundsätzliche Problem...

Stephan
Stephan Faust
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Langsamer Like Zugriff

  Alt 18. Mai 2007, 14:21
Wenn Du wirklich nach Textteilen suchen willst, die auch innerhalb eines Textes vorkommen können, dann musst Du wohl oder übel eine Volltextsuche implementieren. Ich vermute mal, für MySQL gibts sowas.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz