Ik heb een mysql tabel met 20 kolommen, en +/- 100.000 records.
De tabel krijgt zelden nieuwe INSERT's, maar regelmatig een kleine update waarbij word bijgehouden hoe vaak de 'row' bekeken is.. (update tabel set views=views+1 where id = #id)
De tabel draait op een babynamen website, en nu ga ik een namen zoekfunctie maken waarbij letterlijk elke kolom in de where clause kan voorkomen.
Een zoekquery zou er zo uit kunnen zien:
Is het verstandig om op 19 van de 20 kolommen een index te zetten?
De tabel krijgt zelden nieuwe INSERT's, maar regelmatig een kleine update waarbij word bijgehouden hoe vaak de 'row' bekeken is.. (update tabel set views=views+1 where id = #id)
De tabel draait op een babynamen website, en nu ga ik een namen zoekfunctie maken waarbij letterlijk elke kolom in de where clause kan voorkomen.
Een zoekquery zou er zo uit kunnen zien:
MySQL:
1
2
3
4
5
6
| SELECT * FROM tabel WHERE kolom1 like '%a%' AND kolom2 like '%a%' AND kolom3 like '%a%' AND kolom4 like '%a%' AND kolom5 like '%a%' AND kolom6 like '%a%' AND kolom7 like '%a%' AND kolom8 like '%a%' AND kolom9 like '%a%' AND kolom10 like '%a%' AND kolom11 like '%a%' AND kolom12 like '%a%' AND kolom13 like '%a%' AND kolom14 like '%a%' AND kolom15 like '%a%' AND kolom16 like '%a%' AND kolom17 like '%a%' AND kolom18 like '%a%' AND kolom19 like '%a%' AND kolom20 like '%a%'; |
Is het verstandig om op 19 van de 20 kolommen een index te zetten?
[ Voor 3% gewijzigd door pim op 07-03-2012 15:24 ]