Cleaning up the WordPress database
A WordPress database grows without anybody tending it. At some point that becomes measurable in speed.
Revisions
Every save of a page creates a new version. A page edited fifty times takes fifty times the space. Limit how many revisions are kept.
Transients
Cache data meant to expire that sometimes lingers. On older sites this is often the largest block.
Orphaned tables
Removed plugins frequently leave their tables behind. They do not slow your site down but they inflate every backup.
Spam and trash
Spam comments and deleted items stay in the database until they are permanently emptied.
How to go about it
Back up first — a cleanup cannot be undone. Clean one type at a time and check the site still works afterwards. And automate the recurring cleanup, otherwise you will repeat this exercise in two years.