I am self-hosting a WordPress blog site (not this one). And though I did not allow “Comments”, my site received hundred and thousands of spam comments. To delete these unapproved comments all at once, I directly access my database and issue the command:
DELETE FROM wp_comments WHERE comment_approved = '0';
Note: I have not installed a plugin for spam protection like Akismet.