索引键和相关列或仅索引键以提高mysql的速度

索引键和相关列或仅索引键以提高mysql的速度,mysql,sql,Mysql,Sql,因此,如果我有如下sql查询: SELECT title, document FROM docs WHERE id = "1" and type = "2" SELECT title FROM docs WHERE id = "1" SELECT title FROM docs WHERE member = "foo" 为了最大限度地提高第一个i的速度。我是否只需要索引键(id和类型一起?分开?)ii。我是否还需要索引标题和文档(一起,分开) 同样类型的问题适用于第二个问题和第三个问题。

因此,如果我有如下sql查询:

SELECT title, document FROM docs WHERE id = "1" and type = "2"

SELECT title FROM docs WHERE id = "1" 

SELECT title FROM docs WHERE member = "foo"
为了最大限度地提高第一个i的速度。我是否只需要索引键(id和类型一起?分开?)ii。我是否还需要索引标题和文档(一起,分开)

同样类型的问题适用于第二个问题和第三个问题。我是否只需要为成员编制索引? 我只是想了解mysql检索和索引。

1)将id和类型索引在一起,而不是标题和文档

2) 仅索引id

3) 仅索引成员

换句话说,你必须索引{id},{id,type},{member}

你需要2个索引

(id, type, title)
(member, title)
  • id,type
    使
    id
    冗余
  • 添加标题将创建索引

因此,基本上,任何正在查找的内容都不会被检索到。(WHERE子句){id,type}使{id}变得多余。所有这些,甚至更多,都在上解释过,所以我必须索引与键相关联的列,以便更快地检索?嗯。@gbn:那么如果我得到9列,并且有2个WHERE条件,我是否需要用11列创建索引?对类型和id的组合进行索引是否也会使id索引在没有类型的情况下可以访问?@Anush Prem:几乎可以,除非WHERE子句与聚集索引匹配。列顺序也很重要id/type与type/idso不同(对于仅使用id的搜索更好),假设我为一个表中的所有列(*)编制索引。这对任何类型的查询都足够了吗?@Praneet Sharma:不太够:WHERE子句列必须在左侧