In relation to another comment earlier on, if you're using OO methods to access the database, that can be a serious performance issue. If performance is a real problem for you, you may want to consider replacing
Class::DBI or
DBIx::Class with
Rose::DB::Object. RDBO is considerably faster, as objective benchmarks have shown. I personally use DBIx::Class, but if performance was a more serious issue for me, I'd switch.
Also, I'd highly recommend investigating PostgreSQL for this application. MySQL has its place, but this may not be a good match for it. PostgreSQL scales better under heavy transactional loads, and is generally a much more rigorous, professional-grade, extensible, and standardized solution than MySQL. Prior to the recent release of MySQL 5, I would have said you'd be crazy to run this on MySQL at all. It's still crazy to run it on 4.x. Either upgrade to 5, or switch to PostgreSQL. My opinion on the matter strongly leans towards PostgreSQL. It's just my opinion, but it's backed by a lot of experience with high-performance transactional RDBMS's from various vendors. (Oh, and if you make the switch, be sure to use PostgreSQL 8.1, no sense going through all the trouble of switching over and then using something outdated).