複合インデックスを勉強しまして以下の場合は、複合インデックスが有効と理解できました。
sql
CREATE TABLE `user_active_histories` ( `user_active_history_id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `active_type` varchar(255) NOT NULL, `created_at` datetime NULL DEFAULT NULL, PRIMARY KEY (`user_active_history_id`), KEY (`user_id`, `created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; select * from user_active_histories where user_id = 1 order by created_at desc;
以下のように単一インデックス2つの場合は、複合インデックスと動作が違うのでしょうか。
user_idのインデックスだけだけ利用されて、created_atのインデックスは利用されない認識で合ってますでしょうか。
sql
CREATE TABLE `user_active_histories` ( `user_active_history_id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `active_type` varchar(255) NOT NULL, `created_at` datetime NULL DEFAULT NULL, PRIMARY KEY (`user_active_history_id`), KEY (`user_id`), KEY (`created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; select * from user_active_histories where user_id = 1 order by created_at desc;
お時間ありましたらご回答いただけると助かります。
まだ回答がついていません
会員登録して回答してみよう