First question is hard to answer due to the fact that we dont know the actual size of the tables/items/amount of visitors/ etc etc.
I've heard mysql tables that holds 50+ million rows, with no or small performance slowdown. But that might also be a hardware issue. (128gb vs. 128mb of ram)
The other two ideas are, for me, not bright.
"select votecount from table"
could as easely be used as:
"select count(*) from table"
with the difference, you need one less field. Same goes with most thing you might want (sum(), min() etc. etc.)