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 bankbank_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のパフォーマンスを検証したいときには便利そう