定期生成静态是个好的解决方法。至于搜索,建议可以使用第三方的搜索程序,比如 WebLucene ,这个已经使用过,非常有效,而且可以作为日后数据挖掘的一个资源。车东blog有对WebLucene的讲解:http://www.chedong.com/tech/weblucene.html
如果你非要使用Mysql本身的搜索功能,那么尽量不要使用LIKE之类的,可以考虑全文搜索之类的。