Det enkla svaret är att inte göra det; lagra aldrig en persons ålder. Det ändras för varje person årligen men, som du säger, du måste kontrollera att det är korrekt för varje person dagligen.
Lagra endast födelsedatum och beräkna sedan åldern när du väljer från databasen. Det är bara today - date of birth
så tar nästan inga processorer alls.
EDIT:
För att utöka min kommentar i ManseUKs svar
det finns också risk för misslyckande. Vad händer om din server/databas är nere? Eller kan din uppdatering inte köras vid den angivna tidpunkten? Eller kommer någon och kör den manuellt efter att uppdateringen redan körts för det datumet? Eller stänger någon av din schemaläggare? Det finns ingen risk att detta händer om du beräknar Age
som du väljer från databasen.
För att välja var åldern är mellan 25 och 30 år och förutsatt att kolumnen DATUM dateofbirth
din fråga skulle vara något i stil med:
select *
from users
where dateofbirth between date_add( curdate(), interval -30 year )
and date_add( curdate(), interval -25 year )
Se till att users
indexeras på dateofbirth
.