MySQLでEXPLAINを使っての重たいクエリの調査
今回は、
LaravelでのORMを使う中で、
MySQLでデータベースの検索処理で、
などの確認データで、
色々なJOINなどをやっていると、
件数が増えてきて、
重たくなってきたので、
その調査をした時のメモ。
調査として、
を使ったのだが、
この辺りの調査は、実施したことなかったので、
試しながら、実際に試した時の個人用の備忘録。
使用したMySQLのバージョン確認
mysqlのコマンドラインで確認
実行結果
MySQLでEXPLAINでの実行SQLの確認
実際に実行するコードとしては、
のように使用する。
結果は、
id | select_type | table | type | possible_keys | key | rows | Extra |
1 | SIMPLE | master_sample | ALL | NULL | NULL | 1000 | Using where |
のようになる。
簡単に各項目をメモ
- id: クエリ内のSELECTの識別子(複数のクエリがある場合に区別)
- select_type: クエリの種類(SIMPLE, SUBQUERY, PRIMARYなど)
- table: 対象のテーブル名
- type: テーブルアクセス方法(ALL, INDEX, RANGE, REF, EQ_REF, CONST, SYSTEM)
- possible_keys: 使用可能なインデックス(NULLなら候補なし)
- key: 実際に使用されたインデックス
- rows: 検索対象の推定行数(小さいほど効率的)
- Extra: その他の情報(Using index, Using where, Using temporaryなど)
こちらになるので、
上記の
が、
については、
「フルスキャン」での検索になっているので、
インデックス適用を検討した方が良い。
就職/転職に向けてスキルを高めるために
プログラミングのスキルを高めるために、
以下のサイトを参考にしてみてください。
おすすめ書籍
コメント一覧
コメントはまだありません。
コメントを残す