brotherhood_of_LAN - 5:31 pm on Mar 24, 2011 (gmt 0)
2.) MySQL counts are optimized for count(*) if I remember correctly (double check), but I think I remember reading the count of indexed data is optimized for a count(*) over a specific col. (I don't remember all the ins and outs, but I know for certain queries related to counts it is -or was- better to use the * than something more specific because of the way an index is created.)
MyISAM tables are optimized for COUNT(*) with no WHERE clause because they store the row count as meta data, the query appears instant because the query doesn't actually scan any indexes or data. Transactional engines like InnoDB are not 'optimized' as such for COUNT(*) because of their transactional nature, the table can be in more than one state at any one time.
Anyway, assuming it is a MyISAM table, any WHERE clause for COUNT() will cause an index or table scan so an index is preferable.