EXPLAIN QUERY PLAN SQL_QUERY;
でクエリ実行計画を確認できる。
CREATE TABLE IF NOT EXISTS `bank`
(
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`bank_code` TEXT NOT NULL,
`name` TEXT NOT NULL,
`kana` TEXT NOT NULL
);
たとえばこういうテーブルがあったときにbank_code
でデータを取得するクエリの実行計画を見てみると、下記のようになる。
EXPLAIN QUERY PLAN SELECT * FROM bank WHERE bank_code = "0001"
selectid order from detail
---------- ---------- ---------- ----------------
0 0 0 SCAN TABLE bank
bank_code
にインデックスを追加すると、下記のようになる
CREATE UNIQUE INDEX `index_bank_bank_code` ON `bank` (`bank_code`)
EXPLAIN QUERY PLAN SELECT * FROM bank WHERE bank_code = "0001"
selectid order from detail
---------- ---------- ---------- ----------------
0 0 0 SEARCH TABLE bank USING INDEX index_bank_bank_code (bank_code=?)
explain SQL_QUERY
でもクエリがどのように実行されているかを確認することができる。
SQLのパフォーマンスを検証したいときには便利そう