Different Count and Mysql_num_rows in MYSQL
Use
COUNT
, internally the server will process the request differently.
When doing
COUNT
, the server will only allocate memory to store the result of the count.
When using
mysql_num_rows
, the server will process the entire result set, allocate memory for all those results, and put the server in fetching mode, which involves a lot of different details, such as locking.
Think of it like the following pseudo scenario:
1) Hey Bob, how many people are in the class room? (count)
2) Hey Bob, get me a list of all the people in the classroom, ... I'll calculate the number of people myself (mysql_num_rows)