3

假设有一个包含 3 列 A、B 和 C 的表。A 是主键。我有两种类型的查询,一种按 A 和 B 搜索,另一种按 A 和 C 搜索。是为 C 添加二级索引以基于 A 和 C 搜索还是用 A、C 创建一个新表更好,和 B 列。

换个角度来看,一般来说,在两列上有两个二级索引并在两个索引上都有一个 where 子句条件是一个坏主意。组合主键和二级索引的情况是否相同?

https://www.youtube.com/watch?v=CbeRmb8fI9s#t=56

https://www.youtube.com/watch?v=N6UY1y3dgAk#t=30

4

1 回答 1

5

二级索引几乎从不提高性能,它们主要是一种说服工具,允许查询探索您的数据。几乎所有的性能提升都来自正确构建主键和创建正确建模您想要执行的查询的数据模式。

因此,拥有两个表 A by B 和 A by C 很可能是理想的解决方案,并且实际上会随着您的数据进行扩展。

于 2014-02-08T06:01:11.640 回答