我不是很熟悉mySql上的索引内部,但是在我熟悉的两个数据库供应商产品(MsSQL,Oracle)上,索引是balance-
Tree结构,其节点被组织为列的顺序元组。索引定义在( 在定义的序列中 )
因此,除非mySql的 *** 作方式大不相同((可能不是)),只要需要按索引中列的 子集 进行过滤或排序的任何查询, 就
可以使用任何复合索引(在多个列上)。列列表是兼容的,即,如果列的排序顺序与完整索引中列的排序列表相同,则该列是完整索引列集的有序子集,该索引集从实际索引序列的开头开始,除了最后没有差距…
__
换句话说,这意味着如果在(a,b,c,d)上有索引,则对(a),(a,b)或(a,b,c)进行筛选的查询也可以使用索引,但需要过滤(b)或(c)或(b,c)的查询将无法使用索引…
因此,在您的情况下,如果您经常需要单独对列 项目 进行过滤或排序,则需要单独在该列上添加另一个索引…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)