Ik heb de volgende query gemaakt:
Deze query neemt ruim de tijd, ergens rond de 2 seconden.
Als ik de volgende query uitvoer, gaat het veel sneller (0,118 sec):
Het verschil is dus dat er hier geen gebruik wordt gemaakt van de FullText index. Het probleem zit daar echter ook niet.
Als ik de join weghaal, en dan de fulltext gebruik om te zoeken, wordt de query uitgevoerd in 0,0006 seconden. De query is dan:
Een explain van de eerste query staat op: http://i56.tinypic.com/ibg8j4.png
Wie weet waar dit aan zou kunnen liggen? ik heb me natuurlijk al helemaal rot gezocht, maar dat heeft niet mogen baten.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
| SELECT * FROM knhs_cpv_pe as pe RIGHT JOIN knhs_cpv_co as co ON co.persoonsnummer = pe.persoonsnummer LEFT JOIN knhs_cpv_di as di ON co.diernummer = di.diernummer WHERE MATCH(pe.voorletters, pe.voornaam, pe.tussenvoegsels, pe.achternaam) AGAINST('Jansen') GROUP BY co.combinatienummer |
Deze query neemt ruim de tijd, ergens rond de 2 seconden.
Als ik de volgende query uitvoer, gaat het veel sneller (0,118 sec):
SQL:
1
2
3
4
5
6
| SELECT * FROM knhs_cpv_pe AS pe RIGHT JOIN knhs_cpv_co AS co ON co.persoonsnummer = pe.persoonsnummer LEFT JOIN knhs_cpv_di AS di ON co.diernummer = di.diernummer WHERE pe.achternaam = 'Jansen' GROUP BY co.combinatienummer |
Het verschil is dus dat er hier geen gebruik wordt gemaakt van de FullText index. Het probleem zit daar echter ook niet.
Als ik de join weghaal, en dan de fulltext gebruik om te zoeken, wordt de query uitgevoerd in 0,0006 seconden. De query is dan:
SQL:
1
2
3
4
| SELECT * FROM knhs_cpv_pe as pe WHERE MATCH(pe.voorletters, pe.voornaam, pe.tussenvoegsels, pe.achternaam) AGAINST('Adelaars') |
Een explain van de eerste query staat op: http://i56.tinypic.com/ibg8j4.png
Wie weet waar dit aan zou kunnen liggen? ik heb me natuurlijk al helemaal rot gezocht, maar dat heeft niet mogen baten.
[ Voor 3% gewijzigd door mathijs92 op 04-10-2010 15:52 ]