我有2个查询
SELECT * FROM table WHERE store_id=1 && album_id=1 && delete=0
UPDATE table SET delete=0 WHERE store_id=1 && album_id=1
我创建了一个索引store_id, album_id, delete
我的问题是这两个查询可以共享此索引吗?
或者我必须为第二个
创建另一个索引(store_id,album_id)答案 0 :(得分:3)
如果要创建一个复合索引为table(store_id, album_id, delete)
的索引,则两个查询都应该能够使用此索引。
首先会使用索引中的所有三个字段,因为它们与where
子句完全匹配。
第二个查询将使用索引中的前两列作为其where
子句。