複合インデックスを勉強しまして以下の場合は、複合インデックスが有効と理解できました。
sql
1CREATE TABLE `user_active_histories` ( 2 `user_active_history_id` int(11) NOT NULL AUTO_INCREMENT, 3 `user_id` int(11) NOT NULL, 4 `active_type` varchar(255) NOT NULL, 5 `created_at` datetime NULL DEFAULT NULL, 6 PRIMARY KEY (`user_active_history_id`), 7 KEY (`user_id`, `created_at`) 8) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 9 10 11select * from user_active_histories where user_id = 1 order by created_at desc;
以下のように単一インデックス2つの場合は、複合インデックスと動作が違うのでしょうか。
user_idのインデックスだけだけ利用されて、created_atのインデックスは利用されない認識で合ってますでしょうか。
sql
1CREATE TABLE `user_active_histories` ( 2 `user_active_history_id` int(11) NOT NULL AUTO_INCREMENT, 3 `user_id` int(11) NOT NULL, 4 `active_type` varchar(255) NOT NULL, 5 `created_at` datetime NULL DEFAULT NULL, 6 PRIMARY KEY (`user_active_history_id`), 7 KEY (`user_id`), 8 KEY (`created_at`) 9) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 10 11select * from user_active_histories where user_id = 1 order by created_at desc;
お時間ありましたらご回答いただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/09 03:37
2021/12/09 07:19