Storing user search terms
Storing in mysql table should be fine. You need to consider how the data is going to be accessed and retrieved when you're designing the table and indexes on it. I'd say that you're likely to be doing queries which return all of the past searches for a particular user (or perhaps even just the most recent by user) so it would probably make sense to cluster the table by UserID and SearchDate. This design should also help reduce contention if lots of inserts are happening at the same time since each user will be inserting into a different part of the table.