mysql_query("SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS * FROM foo WHERE
b = 1 LIMIT 1000, 10");
$end
= microtime(true);
echo
$end
-
$start
. "\r\n";
echo
'===================MyISAM=======================' . "\r\n";
$start
= microtime(true);
mysql_query("SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS * FROM foo2
WHERE b = 1 LIMIT 1000, 10");
$end
= microtime(true);
echo
$end
-
$start
. "\r\n";
返回结果:
一次查询就会差别这么多!!InnoDB 和 MyISAM,赶紧分析分析为什么。
首先是使用 explain 来进行查看
确定两边都没有使用 index,第二个查询查的 rows,并且 MyISAM 的查询 rows 还比
InnoDB 少这么多,反而是查询慢于 InnoDB!!这 Y 的有点奇怪。
没事,还有一个牛掰工具 profile
具体使用可以参考:http://dev.mysql.com/doc/refman/5.0/en/show-profile.html
使用方法简单来说: