I have a SQL query that examines an entire column (right now 25,000
rows, but growing fast), it finds the top 50 most common elements in a
column. To reduce load, I want to execute this script only once a week
instead of every time the page is loaded.

What is the best way to do this? Just run a cron job that executes a
Ruby script once a week? Or does MySQL have something built in for this?