one "DO" comes immediately to mind as I have dealt with it recently with
a system that went from reasonably few transactions (departmental) to high volume (enterprise wide usage).
If using a database, create as few connections as possible.
DB connections are expensive and in a high transaction CGI (as well as non-CGI) scenario,
creating multiple connections where less (one is best) will do will have a significant
impact on your response time, as well as anyone else you may be sharing
db resources with (like listeners).
Of course this suggestion (as well as many
others you may receive on this) is really valid for all languages.