我最近正在研究mysql表的索引优化,我注意到FORCE INDEX
和USE INDEX
几乎提供相同的功能,我想问一下它们的不同之处?< / p>
答案 0 :(得分:21)
将上述评论作为答案发布:
如果您使用USE INDEX,那么您推荐优化器使用此索引,但如果优化器认为它更快,它可以使用表扫描。如果您使用FORCE INDEX,那么即使它认为表扫描更有效,也可以使优化器使用此索引。仅当无法使用索引查找行时,优化程序才会使用表扫描。
你也可以使用FORCE INDEX,它的作用类似于USE INDEX(index_list)但是 假设表扫描非常昂贵。换一种说法, 只有在无法使用其中一个给定索引时才使用表扫描 在表格中查找行。