• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL5.5 viewの処理速度改善について)

MySQL5.5 viewの処理速度改善について

このQ&Aのポイント
  • MySQL5.5のviewの処理速度を改善する方法について相談です。
  • Windows2008 Hyper-VゲストOS上のMySQL5.5で構築されたDB環境で、viewテーブルの処理速度が遅い問題があります。
  • viewを使用すると処理時間が12.5426秒かかるのに対して、viewを使わずに直接クエリーを実行すると0.0024秒で処理ができます。改善策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hogya
  • ベストアンサー率67% (49/73)
回答No.1

'Using temporary'とUsing filesort'が使われているので、実表に対して大規模なソート(おそらくdt)処理が走っていることが確認できますね。これはview内でdistinctを使用しているせいだと思いますが、distinctをview内に定義せず、検索クエリー側で指定する訳にはいきませんか?

watanabe2602
質問者

お礼

hogyaさん 貴重な情報ありがとうございます。 教えて頂いたようにview内でdistinctせず、viewテーブル検索側でdistinctするようにし クエリーを実行した結果、期待するような速度になりました。 -------------------------------------------------------------- view内でdistinctしない場合のクエリーのexplain結果 -------------------------------------------------------------- id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra 1, 'SIMPLE', 'dt', 'ref', 'PRIMARY,idx_dt_keyid', 'PRIMARY', '4', 'const', 10, 'Using temporary; Using filesort' 1, 'SIMPLE', 'mst', 'eq_ref', 'PRIMARY', 'PRIMARY', '20', 'testdb.dt.KBN', 1, '' この方法で対応を進めたいと思います。 ありがとうございました。

関連するQ&A