假设有一个包含3列A,B和C的表.A是主键。 我有两种类型的查询,一种是按A和B搜索,另一种是按A和C搜索。 是否最好为C添加二级索引以基于A和C进行搜索,或者创建一个包含A,C和B列的新表。
从不同的角度来看,一般来说,在两列上有两个二级索引并且在两个索引上都有一个where子句条件是一个坏主意。组合主键和辅助索引是否相同?
答案 0 :(得分:5)
辅助索引几乎从不帮助提高性能,它们大多是说服允许查询探索数据的工具。几乎所有的性能提升都来自正确构建主键并创建数据模式,这些数据模式可以正确地为您要执行的查询建模。
所以有两张桌子 A by B和A by C很可能是理想的解决方案,并且实际上会随您的数据进行扩展。