次の MySQL/InnoDB テーブルがあります。両方の列の主キーとして複合インデックスを追加し、2 つの単一列インデックスも追加しました。複合インデックスを配置すると、単一列インデックスからパフォーマンスが向上しますか? または、それらをドロップした方がよいでしょうか?
CREATE TABLE `keywords` (
`keyword` varchar(100) NOT NULL,
`record_id` int(11) NOT NULL,
PRIMARY KEY (`keyword`,`record_id`),
KEY `keyword` (`keyword`),
KEY `record_id` (`record_id`),
CONSTRAINT `keywords_record_id_records_id` FOREIGN KEY (`record_id`) REFERENCES `records` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
それが役立つ場合、このテーブルの主な目的は前方インデックスであるため、このテーブルはINNER JOIN
、メイン レコード テーブルの id 列に record_id を指定して排他的に使用されます。