我有一个有600万行的表,我需要查找六列来选择项目。所以我创建了一个包含六列的索引。
更改索引中列的顺序是否影响查询速度?
查询的速度是否取决于每列所具有的唯一项的数量?或者列上的条件具有的可能结果的总数?
我尝试重新排序索引中的列,查询速度似乎有一些重大变化
表:pic_tag_relations
列:
查询:
select*from pic_tag_relations,其中tag_id in($all_tag_ids)&&contrast_score>2.5&quality_score>3&is_okay=1&pic_ratio_type='2'&already_used_count<10
索引中列的顺序影响可以使用的查询。如果条件都是相等的,那么排序就没什么区别了。
首先使用具有大量值的键和具有少量值的键之间可能有很小的区别。但是,我不会担心当索引被最佳地使用时性能的不同。
更重要的是,索引中的列的相等条件是第一列(无论顺序如何),这样索引就可以有效地使用。