16. mysql>
UPDATE
prize_history
SET
del_flg
=
1
WHERE
prize_id
=
14
AND
ctime
BETWEEN
'2013-05-18
00:00:00'
AND
'2013-05-24
00:00:00';
実行するSQL
イベント報酬ID
イベント開始日時
イベント終了日時
45. テスト用テーブル
・サンプルのデータは10万件
カラム名
型
id unsinged int(11)
A unsinged int(11)
B varchar(255)
C unsinged int(11)
インデックス
名
インデックス
種別
対象カラム
pkey プライマリキー
Id
index_A インデックス
A
index_B インデックス
B
index_C インデックス
C
index_A_B_
C
インデックス
A,B,C
46. 複合インデックス
が使える場合
• SELECT * FROM test WHERE A=1 and B=2 and C=3
• SELECT * FROM test WHERE A=1 and B=2
• SELECT * FROM test WHERE A=1
※ INDEX index_a_b_c(A,B,C)の場合
47. 複合インデックス
が使えない場合
• SELECT * FROM test WHERE B=2 and C=3
• SELECT * FROM test WHERE A=1 and C=3
• SELECT * FROM test WHERE B=2
※ INDEX index_a_b_c(A,B,C)の場合
51. カバリングインデックスの例
• SELECT A,B,C FROM test WHERE A=1 and B=2 and C=3
• SELECT A FROM test WHERE A=1 and B=2
• SELECT A,B,C FROM test WHERE A=1
※ INDEX index_a_b_c(A,B,C)の場合
52. カバリングインデックス
EXPLAIN
EXPLAIN
SELECT
A,B,C
FROM
test
WHERE
A=757
AND
b='0.ZYc2FHB0kpo'
G;
***************************
1.
row
***************************
id:
1
select_type:
SIMPLE
table:
test
type:
ref
possible_keys:
index_A,index_B,index_A_B_C
key:
index_A_B_C
key_len:
771
ref:
const,const
rows:
1
Extra:
Using
where;
Using
index
Indexを使っているという
意味ではない。Index内
のデータを使用している
という意味(カバリングイ
ンデックス)