Farei sempre un cron job, perché:
- Ecco dove gli amministratori di sistema si aspettano che sia (questo punto non è da sottovalutare)
- crontab è a prova di proiettile, testato nel tempo, estremamente diffuso e compreso
- Puoi dirigere/analizzare liberamente i messaggi di errore/successo dove vuoi
- Alcune attività del database richiedono/preferiscono che mysql sia offline (ad es. backup completo), quindi devi usare cron per quelle - è una cattiva idea fare alcune attività con cron e altre con mysql; non sarai sicuro di dove cercare
- Puoi concatenare altri eventi che dovrebbero seguire se hai uno script di shell
E infine, solo perché puoi fare qualcosa, non significa che sia una buona idea. MySQL è bravo con i dati. Non usarlo per cose "shell".