Re: SQL Fragen...
Posted: 2008-08-21 08:12
Das ist ein Full Table Scan. In der Where-Bedingung sind keine Spaltennamen zu sehen, sondern nur Funktionsaufrufe. Mithin kann kein Index verwendet werden, da Indices ja immer auf Spalten liegen und nicht auf Funktionsresultattabellen.matzewe01 wrote:select a.name, b.timestamp from useraccount a, user_stats b
where lower(a.uname) = lower(b.uname)
Aber warum dauert die abfrage mit einer lower() Anweisung massiv länger als ohne.
Der Vergleich ist sowieso Case Insensitive, solange die Column nicht BINARY oder _cs definiert sind. Die Funktionsaufrufe sind also Unsinn.
Code: Select all
select a.name, b.timestamp from useraccount a, user_stats b where a.uname = b.uname