mysql:4801
From: <office@xxxxxxxxxx>
Date: Sun, 09 Dec 2001 00:43:26 +0900
Subject: [mysql 04801] WHERE 節の内容によって検索時間が大きく違います
こんにちは、たけ@J-SKY研究所です。 環境 PHP4.05+jstring MySQL 3.23.39 現在以下のようなスキーマーのテーブルで40万レコードほとあります。 CREATE TABLE kansou_tb ( k_id int(11) NOT NULL auto_increment, k_flag char(1) NOT NULL, dkey varchar(30) NOT NULL, stno varchar(10) NOT NULL, u_id varchar(11) NOT NULL, u_name varchar(50) NOT NULL, tokuten int(3) DEFAULT NOT NULL, k_comment text NOT NULL, w_time varchar(100) NOT NULL, ip varchar(100) NOT NULL, host varchar(100) NOT NULL, brows varchar(200) NOT NULL, deleter varchar(100) NOT NULL, UNIQUE k_id (k_id), KEY k_id_2 (k_id, k_flag, dkey, stno, u_id) ); そして以下のようにSQLを行うと SELECT * FROM DB1.kansou_tb where (dkey='1000')&&(k_flag='1')&&(k_id <'358032') order by k_id desc limit 0,5 ; 5 rows in set (13.48 sec) みたいな感じで10秒以上検索に時間がかかってしまいます。(汗 (k_id <'358032')をなくして SELECT * FROM DB1.kansou_tb where (dkey='1000')&&(k_flag='1') order by k_id desc limit 0,5 ; 5 rows in set (0.04 sec) ってな感じでほとんど時間がかかりません。 どうも(k_id <'358032')をつけると大幅に時間がかかるようになってしますので すが、そういうものなんでしょうか? それともインディックスの付け方が悪いのか、どうなんでしょう? お分かりになるかたみえましたらご教授お願いします。 _/_/_/ たけ@J-SKY研究所 _/_/_/ _/_/_/ J-PHONEの着メロが10000曲以上! _/_/_/ _/_/_/ URL:http://www.j-ken.com _/_/_/ _/_/_/ mailto:take@xxxxxxxxxx _/_/_/
-> 4801 2001-12-09 00:43 [<office@xxxxxxxxxx> ] WHERE 節の内容によって検索時間が大きく違います 4802 2001-12-09 10:11 ┣[Takeharu Masuda <tac] 4803 2001-12-09 10:39 ┗[<office@xxxxxxxxxx> ] 4804 2001-12-09 21:10 ┣[Takeharu Masuda <tac] 4805 2001-12-10 00:29 ┃┗[とみたまさひろ <tomm] 4807 2001-12-10 08:40 ┃ ┗[Takeharu Masuda <tac] 4806 2001-12-10 00:40 ┗[とみたまさひろ <tomm] 4808 2001-12-12 02:24 ┗[<office@xxxxxxxxxx> ]