查询1:
$q = "SELECT COUNT(books.id) FROM books
INNER JOIN books_type ON books.id = books_type.id
WHERE books_type.book_type = 'Comedy'";
查询2:
$q = "SELECT COUNT(*) FROM books
INNER JOIN books_type ON books.id = books_type.id
WHERE books_type.book_type = 'Comedy'";
查询3:
$q = "SELECT books.id FROM books
INNER JOIN books_type ON books.id = books_type.id
WHERE books_type.book_type = 'Comedy'";
$books_count = mysql_num_rows($q);
谢谢。
答案 0 :(得分:2)
您可以尝试EXPLAIN query_here
查找。
例如:
EXPLAIN SELECT books.id FROM books
INNER JOIN books_type ON books.id = books_type.id
WHERE books_type = 'Comedy'
这将为您提供有关每个查询及其执行方式的一些信息。有关EXPLAIN
语句的MySQL手册中的更多信息:
“当您在SELECT语句之前使用关键字EXPLAIN时,MySQL会显示优化器中有关查询执行计划的信息。也就是说,MySQL解释了它将如何处理SELECT,包括有关表如何连接以及以何种顺序的信息“
http://dev.mysql.com/doc/refman/5.0/en/using-explain.html
我还推荐本教程在Database Journal中优化MySQL查询:
答案 1 :(得分:1)
即使你可以自己轻松地测试它,here's一篇文章说明了原因。根据它,第二个应该是最快的。