Citat:
Ursprungligen postat av grazzy
Citat:
Originally posted by -Robert@Dec 15 2004, 14:08
Citat:
Ursprungligen postat av grazzy
uhh.. index gör väl nytta med like??
|
exempel "LIKE '%apa%' " tvingar ju db'n att lik förbenat snurra igenom allt data i kolumnen, oavsett om en index har förberett kolumnen i sorterad ordning etc.
|
Mjaa..
http://dev.mysql.com/doc/mysql/en/CREATE_INDEX.html
Citat:
Because most names usually differ in the first 10 characters, this index should not be much slower than an index created from the entire name column. Also, using partial columns for indexes can make the index file much smaller, which could save a lot of disk space and might also speed up INSERT operations!
|
Det där tolkar jag som att det gör nytta att indexera även textfält, det är klart att det aldrig blir lika effektivt som med en integer. Jag skulle tippa på att dom gör om indextexten till ett hashvärde som sedan lagras i en hashtabell.
Tex:
Kod:
hash_value *pekare_till_värde
123 * * * * * * * 1,2,3
321 * * * * * * * 4,5,6
När då tex värdena i 1,2,3 får hashvärdet "123" och värdena i 4,5,6 får hashvärdet "321", det är då mycket snabbare att söka i detta index än att söka i hela tabellen.
|
Jupp, men en LIKE med texten inuti den sökbara datan kan ju inte få ett hashvärde...det finns liksom inget att gå efter. Söker man efter %apa% i data som ser ut som "min fina apa Gustav" så spelar indexeringen ingen roll...såtillvida inte alla tänkbara kombinationer av av datat är indexerat (hemska tanke). Så har jag fått lära mig iaf... =)