次のMySQL クエリを実行しています。
* family_type='f597'; の組み合わせから選択します。
約90,000行あるテーブルで。phpMyAdmin 経由でクエリを実行すると、実行に 0.3 秒かかりますが、同じホスト上の私の PHP ページでは、一貫して約 8 秒かかります。
私のページでかかる時間をテストするために、次のように実行します。
$秒 = マイクロタイム (真); $q = "select * from family_type='f597';"; $r = mysql_query($q); $secs = round(microtime(true)-$secs, 3); exit("$secs 秒");
テーブル構造は次のとおりです。
CREATE TABLE `組み合わせ` ( `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, 主キー (`key`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2349584 ;
私のプログラムがphpMyAdminよりも同じクエリを実行するのが遅い理由を誰か説明できますか?
[更新 1]他のプログラミングの外部でクエリをテストしました。mysql 接続情報と問題のクエリのみを含む単純な test.php ページを作成しました。したがって、先験的に、遅延を引き起こしているのはサイト プログラミングの他の側面ではありません。
[更新 2]ページの読み込みにかかる実際の時間は、phpMyAdmin とテスト ページで同じです。違いは、phpMyAdmin がクエリ時間を計算する方法が原因である可能性があります。
いずれにせよ、クエリの処理に 0.3 秒しかかからない場合、残りの遅延はどこから来るのでしょうか?