As far as I have seen, Gmail does a wonderful job keeping spams away compared with others.
+1
+2
Also, if you get same spam from same sender again, if it's a private domain, you can go to Yahoo Mail Option and block their domain or if it's from public domains like Yahoo, Gmail, AOL or hotmail, just block their address. I did it in my Yahoo account and so my spams (even though in spam folder of yahoo) lowered from 500-600 every day to less than 10 spam a day and it's still like that for years. I'm not missing any legit mail in there too because only blocked those domain and address which I believe is spamming my inbox.
After all, I've linked my Hotmail (2 account), AOL, Yahoo and Mail.ru emails account to Gmail using it's POP3 fetch feature. and so not anymore spam because Google does a great job in blocking spams.