###前提
こちらのstudentsテーブルについてお尋ねします。
SQL
1CREATE TABLE students ( 2 `ID` INT NOT NULL AUTO_INCREMENT, 3 `class_id` INT NOT NULL, 4 `type_id` INT NOT NULL, 5 `content_id` INT NOT NULL, 6 PRIMARY KEY (ID), 7 UNIQUE unique_students_1 (`class_id`,`type_id`,`content_id`) 8); 9INSERT INTO students (`ID`,`class_id`,`type_id`,`content_id`) 10VALUES (1,10,100,1000),(2,20,200,2000),(3,30,300,3000),(4,40,400,4000); 11
###ケースと理由
SELECTでインデックスが効くケースと効かないケースをまとめ、その理由を明示しました
効く効かないの判断ならびに、その理由が以下であっているか教えて頂けませんでしょうか
SQL
1# ケース1:インデックスが効く 2# 理由:「index_students_1」の順番通りなので 3SELECT * 4FROM students 5WHERE class_id=10 AND type_id=100 AND content_id=1000 6 7# ケース2:インデックスが効かない 8# 理由:「index_students_1」の順番通りだが、最初の1つが抜けているため 9SELECT * 10FROM students 11WHERE type_id=100 AND content_id=1000 12 13# ケース3:インデックスが効かない 14# 理由:「index_students_1」の順番通りだが、最初の2つが抜けているため 15SELECT * 16FROM students 17WHERE content_id=1000 18 19# ケース4:インデックスが効かない 20# 理由:「index_students_1」の順番通りでないため 21SELECT * 22FROM students 23WHERE content_id=1000 AND type_id=100 24 25# ケース5:インデックスが効かない 26# 理由:「index_students_1」の順番通りでないため 27SELECT * 28FROM students 29WHERE class_id=10 AND content_id=1000 30
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/04 09:41 編集
2020/08/04 09:42
2020/08/04 11:22
2020/08/04 11:24
2020/08/04 11:29 編集
2020/08/04 13:52 編集
2020/08/04 13:36
2020/08/04 13:52
2020/08/04 14:02
2020/08/04 14:17 編集
2020/08/04 14:21 編集
2020/08/04 23:52