Shell scripting only moves to the next command when that command is done. So you can line them right up and it'll do the jobs for you without need to wait, it's already good for that.
If you wanted to gzip or bzip, just add it to the line after the mysql dump to look like this:
gzip /path/to/dbbackup-$(date +%m%d%Y).sql
or
bzip2 /path/to/dbbackup-$(date +%m%d%Y).sql
I'd try both and see which one gives you better compression on your system.
As for retention, I use (date +%d) for my database backups. This makes one backup for each day of the month. They overwrite each other after a month and due to the factors of months with 31 and 30 days I can even go back few months if needed.
Some people don't have the space for all of this, but it's nice when your brother-in-law calls asking for backups and you get to ask when I've got 30.