Если вам нужно архивировать данные на постоянной основе (ваш # 2), тогда хорошим выбором будет MaatKit.
http://www.maatkit.org/
Он может «кусать» данные в виде кусков, а не выполнять массовые запросы, которые потребляют много ресурсов (и избегая загрязнения вашего кэша ключей).
Так что да, вы запускаете задание Maatkit из cron.
В то же время, если вы хотите сделать # 1 одновременно, вы можете реализовать представление, которое удобно заключает в себе условие "WHERE expiry_dat> NOW", чтобы вам не приходилось включать все это в ваш код.