Klaus Mock: MySQL: Performaceproblem

Beitrag lesen

Hallo,

Zuerst etwas zu Indizes:
Datenbanken 'sortieren' Datensätze grundsätzlich nicht nach irgendwelchen Kriterien in ihrer Datenbasis. Auch mySQL nicht. Wie die Datensätze abgelegt werden, ist Sache des DBMS, Du kannst es nicht wirklich beeinflussen. Du kannst allerdings dem DBMS anweisen, daß es zusätzliche Listen über bestimmte Datenbankfelder anlegt, um bestimmte Ausprägungen (Werte) in dem/den Feld(ern) in der Tabelle schnell zu finden. So etwas nennt man dann Index. Wie Du das bei mySQL machst findest Du unter http://www.mysql.com/doc/C/R/CREATE_INDEX.html.

In dem von der ersten Select-Abfrage zurück gegebenen Zeilen muss _manchmal_ noch bis zu ca. zehn mal gesucht werden. Jeweils mit einem anderem Suchbegriff, eben sooft bis ein Ergebnis gefunden wurde oder sich meine Suchbegriffe erschöpfen.

Versuche ein SQL-Statement zu formulieren, welches auch diese Suche beinhaltet. Alles was Du in der Datenbank, also mit SQL, erledigen kannst, ist in der Regel performanter als das, was Du in einem Programm erledigst. Datenabnken sind eigentlich dafrü gebau, möglichst performant irgendwelche Datensätze zu suchen.
Bedenke, daß Du auch Abfragen formulieren kannst, welche mit mehr als einer Suchbedingung arbeiten:
select sp1,sp2,sp3
  from tabelle
  where sp1 = 'wasauchimmer'
   and (sp2 = 'dies' or sp3 = 'das')

Grüße
  Klaus