Я выполняю следующий MySQL запрос :
select * from combinations where family_type='f597';
На столе, который имеет около 90 000 строк. Если я запускаю запрос через phpMyAdmin, для запуска требуется 0,3 секунды, но на моей странице PHP на том же хосте это последовательно занимает около 8 секунд .
Чтобы проверить, сколько времени занимает моя страница, я запускаю ее так:
$secs = microtime(true);
$q = "select * from combinations where family_type='f597';";
$r = mysql_query($q);
$secs = round(microtime(true)-$secs, 3);
exit("$secs seconds");
Структура таблицы следующая:
CREATE TABLE `combinations` (
`part_no` char(7) collate latin1_general_ci NOT NULL,
`key_type` smallint(4) unsigned NOT NULL,
`family_type` char(5) collate latin1_general_ci NOT NULL,
`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,
PRIMARY KEY (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2349584 ;
Может кто-нибудь объяснить, почему моя программа выполняет тот же запрос намного медленнее, чем phpMyAdmin?
[обновление 1] Я протестировал запрос вне любого другого программирования - я создал простую страницу test.php, которая содержала только информацию о соединении mysql и рассматриваемый запрос. Так что a priori это не какой-то другой аспект программирования сайта, который вызывает задержку.
[обновление 2] Фактическое время, необходимое для загрузки страницы, одинаково для phpMyAdmin и для моей тестовой страницы. Разница может быть связана с тем, что phpMyAdmin вычисляет время запроса.
В любом случае, если на обработку запроса уходит всего 0,3 секунды, откуда берется остальная часть задержки?