繁体   English   中英

php&mySQL:以下哪个查询更快? 为什么?

[英]php & mySQL: Which of the following query is faster? Why?

  1. 以下3个查询中的哪个查询会更快? 为什么?
  2. 我在我的应用程序中将此类查询与许多其他联接一起使用。 所以我有什么办法可以衡量他们的速度? 如果是,请您说一下它是什么/它们是什么?

查询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);

谢谢。

您可以尝试在EXPLAIN query_here进行查找。

例如:

EXPLAIN SELECT books.id FROM books 
INNER JOIN books_type ON books.id = books_type.id
WHERE books_type = 'Comedy'

这将为您提供有关每个查询及其执行方式的一些信息。 MySQL手册中有关EXPLAIN语句的更多信息:

“当在SELECT语句前加上关键字EXPLAIN时,MySQL将显示来自优化程序的有关查询执行计划的信息。也就是说,MySQL解释了它将如何处理SELECT,包括有关如何联接表以及以何种顺序进行联接的信息”

http://dev.mysql.com/doc/refman/5.0/en/using-explain.html

我还建议使用本教程来优化Database Journal中的MySQL查询:

http://www.databasejournal.com/features/mysql/article.php/1382791/Optimizing-MySQL-Queries-and-Indexes.htm

即使你可以很容易地测试它自己, 这里是进入的原因的文章。 根据它,第二个应该最快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM