A database with 250 000 rows is considered small in DBA circles. Use the database for what it's good for - don't reinvent the wheel. The developers at MySQL are probably better at writing efficient queries than you are, especially since they use C to do so. Store as much as you can in a well laid out database, with as many columns as make sense - it'll be faster now, and it will certainly be faster in the future when you think of a new query that you want to execute.