Hallo,

Een website die ik gemaakt hebt ik gehost bij een redelijk bekende hosting. Nu kreeg ik vandaag een e-mail, dat een bepaald script 50% CPU gebruikt van de MySQL-server.
Wat kan ik als oplossing gebruiken? De query is:


SELECT *, naam.id as pers_id, plaatsen.naam as plaatsnaam, MID(geboortedatum,7,4) as gjaar FROM naam, plaatsen WHERE achternaam REGEXP '^(achternaam)$' && voornaam like '%'  AND naam.plaats = plaatsen.id  AND ((MID(geboortedatum,7,4) <= 2000 AND MID(geboortedatum,7,4) >= 1880) OR (MID(geboortedatum,1,4) <= 2000 AND MID(geboortedatum,1,4) >= 1880)) AND geboortedatum != '' 


Er is vast en zeker een beter en snellere manier voor deze query. Waar waarschijnlijk de meeste CPU vreter zit is: MID(geboortedatum,1,4)

De query haalt uit drie of soms vier verschillende tabellen zijn gegegens.
Steffan

Reageren