mysql:10711
From: mattun <mattun <mattun@xxxxxxxxxx>>
Date: Tue, 21 Dec 2004 15:10:49 +0900
Subject: [mysql 10711] Re: SELECTの速度が遅い
松丸です。 > SELECT u.id, u.name > FROM message as m LEFT JOIN user as u on > m.target = u.id > WHERE u.sid = 53 > AND m.isread = 'f' > > では、だめでしょうか? 試しましたが、同じく時間がかかりましたです。 > ちなみに、一番最後のgroup by b.id order by b.idを取り除いても > 結果出力は遅いのでしょうか? 同じく遅くなりました。 あれから、「実践ハイパフォーマンスMYSQL」という本を買いまして、インデックスとはなんぞやみたいのを、 勉強し直しました。また、このクエリが何をしたいのかというのをひたすら考え(このプログラム自体は、以前の 担当の方が作ったもので、僕は途中でまるなげで引き継いだ感じです。)あぁだこうだぁやりまくりました。 結果、 select b.id, b.name from messages as a, users as b where a.target=b.id and b.sid=53 and a.isread='f' group by b.id order by b.id の中で、messagesテーブルに含まれているカラム、targetとisreadの複合インデックスを作成したところ、selectのスピードが、 0.1秒まで縮みました。 いやぁ、もう感無量でした。DBはすごい性能をひめてますね。自己レスになりましたが、みなさまの助言をいただくことでかなり 役立たせていただきました。ありがとうござます。 また、ご質問させていただきます。 ありがとうございました。 松丸 頒泰 mattun@xxxxxxxxxx http://www.meganebu.com
10706 2004-12-20 18:27 [mattun <mattun@xxxxx] Re: SELECTの速度が遅い 10707 2004-12-20 19:36 ┣[al-kamil <al-kamil@x] 10709 2004-12-21 10:44 ┗[Hideki SUNADA <hidek] -> 10711 2004-12-21 15:10 ┗[mattun <mattun@xxxxx]