我正在运行以下MySQL 查询:
从family_type='f597'的组合中选择*;
在有大约 90,000 行的表上。如果我通过 phpMyAdmin 运行查询,运行需要 0.3 秒,但在同一主机上的我的 PHP 页面中,它始终需要大约 8 秒。
为了测试它在我的页面中花费的时间,我运行它是这样的:
$secs = microtime(true); $q = "从family_type='f597'的组合中选择*;"; $r = mysql_query($q); $secs = round(microtime(true)-$secs, 3); exit("$secs 秒");
表结构如下:
创建表`组合`( `part_no` char(7) 整理 latin1_general_ci 非空, `key_type` smallint(4) 无符号非空, `family_type` char(5) 整理 latin1_general_ci 非空, `year_start` varchar(6) collate latin1_general_ci NOT NULL, `year_end` varchar(6) collate latin1_general_ci NOT NULL, `visual` varchar(31) collate latin1_general_ci NOT NULL , `info_veh_0` varchar(255) collate latin1_general_ci NOT NULL, `info_veh_1` varchar(255) collate latin1_general_ci NOT NULL, `info_veh_2` varchar(255) collate latin1_general_ci NOT NULL, `key` mediumint(8) unsigned NOT NULL auto_increment, 主键(`key`) ) 引擎=MyISAM 默认字符集=latin1 排序=latin1_general_ci AUTO_INCREMENT=2349584 ;
谁能解释为什么我的程序运行相同的查询比 phpMyAdmin 慢得多?
[更新 1]我在任何其他编程之外测试了查询——我创建了一个简单的 test.php 页面,其中仅包含 mysql 连接信息和有问题的查询。所以先验地,导致延迟的不是站点编程的其他方面。
[更新 2]加载页面所需的实际时间对于 phpMyAdmin 和我的测试页面是相同的。差异可能是由于 phpMyAdmin 计算查询时间的方式。
无论如何,如果查询只需要 0.3 秒来处理,那么剩下的延迟从何而来?