代码之家  ›  专栏  ›  技术社区  ›  sgmoore

SQL统计和索引-它们有多详细?

  •  5
  • sgmoore  · 技术社区  · 15 年前

    统计数据(有助于决定是否使用索引)是否考虑每个索引的行数 实际的 列值,还是只使用 平均的 每个值的行数。

    假设我有一个名为active的位列的表,它有一百万行,但是99.99%设置为false。如果我在这个列上有一个索引,那么SQL是否足够智能,知道在搜索active=1时使用索引,但是如果搜索active=0,就没有意义了。

    另一个例子,如果我有一个表,它有1000000条记录,其中一个索引列包含大约50000个不同的值,每个值的平均行数为10,但是有一个特殊值,它有500000行。如果搜索此特殊记录,索引可能不有用,但在查找任何其他代码时,索引将非常有用。

    但这种特殊情况会破坏指数的有效性吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   TomTom    15 年前

        2
  •  3
  •   codekaizen    15 年前

    query plan

        3
  •  1
  •   Remus Rusanu    15 年前