SELECT post_id FROM posts WHERE blog_id IN (15,16) ORDER BY post_id DESC
Post_id是PRIMARY,blog_id是索引,表是innoDB和DB MariaDB。SQL:當WHERE索引IN(1,2)ORDER BY Primary時,避免文件夾
這會導致文件夾,因爲索引blog_id被用作關鍵字。 Blog_id必須是一個索引,用於查詢僅搜索一個blog_id = 15時的速度。如果blog_id不是索引,或者我使用FORCE INDEX(PRIMARY),則問題已解決,查詢速度更快。
問題是我認爲你不應該在生產應用程序上使用FORCE INDEX,也不應該使用USE INDEX?這將是第一個問題,我可以強制索引,並稱它解決?
第二個問題將是爲什麼它在這裏做文件。如果我理解正確,索引有兩個鍵,即索引鍵和主鍵,索引是由主鍵排序的?我想不是因爲如果是這樣,第一個查詢應該能夠通過索引進行搜索,並按照主要順序進行搜索而不用文件。但是在搜索一個id時它不使用filesort,而且我也不明白爲什麼它與multiples id不同。所以我不知道它爲什麼會發生。
請參閱您的重複查詢的答案。 –