MySQL中的索引 - 101简介?

时间:2010-12-24 11:23:24

标签: mysql database indexing

我一直在创建表和键,基本的东西。没有索引经验。所以问题是:我是否需要手动创建任何索引,或者MySQL是否为我创建的所有表格自动创建它?

如果我需要创建它们,是否意味着需要将具有PK和FK的任何列编入索引,或者这个业务逻辑与哪些列需要索引相关,哪些列不需要。

2 个答案:

答案 0 :(得分:3)

您需要自己创建它们。 PK实际上是索引本身,因此不需要对这些列进行双重索引。 FK只能针对索引列实现......

至于实现索引的时间和原因,我建议您阅读以下内容:

  1. The official documentation
  2. MySQL Performance Blog
  3. A sitepoint index
  4. 有一点需要注意,不要随便盲目地添加索引。这通常是一个坏主意。相反,计划和测试。仅添加可在您的特定用途中获得可衡量收益的索引。索引不是免费的,所以不要轻易将它们抛弃......

答案 1 :(得分:2)

你必须创建它们。

PK也是索引,FK也是。 (因此无需在PK或FK上创建索引)

您必须在WHERE语句上显示的任何列上创建索引。