Einzelnen Beitrag anzeigen

tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#20

AW: Index bei Like

  Alt 10. Dez 2013, 15:28
Generell sieht die Verwendung eines Index auf einem Feld c1 bei LIKE wie folgt aus:
Code:
select * from t1 where c1 like :c1
=> Kein Index, da parametrisierte Abfrage und zum Zeitpunkt des Prepare der Inhalt des Parameters nicht bekannt ist.
Code:
select * from t1 where c1 like '%Hugo'
=> Kein Index, wenn ein Wildcard als Prefix verwendet wird
Code:
select * from t1 where c1 like 'Hugo'
=> Index
Code:
select * from t1 where c1 like 'Hugo%'
=> Index, bei einem Wildcard als Suffix (wird intern ein STARTING WITH)
Code:
select * from t1 where c1 like upper('Hugo')
=> Index
Code:
select * from t1 where upper(c1) like 'Hugo'
=> Kein Index, da temporäres UPPER auf dem Feld. Abhilfe schafft hier ein Expression-Index, der den UPPER-Inhalt indexiert

Es gibt sicher noch andere Kombinationen ...
  Mit Zitat antworten Zitat