根据您的经验,我想知道哪种情况更快
查询超过1000万条记录的表,分两种情况:
search1
在单个product_id
列search2
由两列shop_name
(已编入索引)和product_id
所以就会像这样
search1 = select * from table where product_id = 123456
search 2 = select * from table where shopname ='abz' and product_id = 123456
第二次搜索有商店名称索引
哪一个会更快?
如果我了解索引如何工作,第二个更快
因为它只会搜索具有shopname ='abz'的ID并忽略其他记录
这是正确的还是我遗漏了一些东西
最佳答案
对于您的两个查询,最佳索引是table(product_id, shopname)
。该索引可以被两个 where
子句完全使用。
如果您拥有的唯一索引位于 shopname
上,那么在大多数情况下第二个查询应该会更快。也就是说,product_id
不在索引中,也不是主键的一部分。
如果您的商店名称很少,并且该表无法装入内存,那么您最终可能会遇到称为抖动的情况。但是,除此之外,仅 shopname
上的索引应该更快,但上述索引似乎是您真正想要的索引。
关于jquery - 按一列无索引或两列其中一列有索引进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48240923/