Klarade millennium-buggen
|
|
Reg.datum: Mar 2004
Inlägg: 3 471
|
|
Klarade millennium-buggen
Reg.datum: Mar 2004
Inlägg: 3 471
|
Ja.
Index försämrar inte prestandan drastiskt vid läsningar, däremot vid skrivningar. Om du har mycket inserts och updates kan det vara värt att fundera extra mycket på hur många index du har. Om främst är läsningar spelar antalet index mindre roll (även om det inte är bra att använda för mkt disk heller - det blir fler läsningar på disk med fler index...).
Tänk på att du ibland (vet inte hur det är i postgresql) kan specifiera hur många tecken indexet skall bry sig om innan det gör över till vanligt fritext sök. Tex när man pratar om namn brukar man säga att 5-7 tecken är allt man behöver indexera, efter de teckena är det såpass få namn som är lika att fritext-sökning går lika bra. Detta beror på vad för typ av data du indexerar.
Jag blev lite osäker så jag gjorde ett test. Jag skapade en tabell med 50000 10 teckens-slumpmässiga strängar. Sedan gjorde jag ett par helt ovetenskapliga selects mot den med en sträng jag visste fanns i den (på det sättet som du visade med = istället för LIKE). Detta var i mysql 4.1.1 på en p3a, det tog i snitt 0.06 sec att hämta en rad. (Ja, jag använde SQL_NO_CACHE).
När jag lagt till indexet så tog det var helt plötsligt medianresultatet nere på 0.00 sec. Helt klart märktbart resultat alltså.
|