如果我在表中的每列上放置索引会发生什么

nav*_*nam 5 mysql indexing

让我们考虑一下有一个包含60列的表,我需要在该表上执行所有类型的查询,并且还需要将该表与其他表连接起来.我几乎使用所有行来搜索该表中的数据,包括其他表.此表类似于数据库中的主表(如主键).所以所有表都与此表有关.通过考虑上面的场景,我可以在表格的每一列上创建索引(60列),这是一个好习惯吗?

用一句话:

Is it best practice to create index on each column in a table ?
What might happens if I create index on each column in a table?
Run Code Online (Sandbox Code Playgroud)

索引可能是"主键","唯一键"或"索引"

请评论,如果这个问题对你不清楚,我会尝试改进这个问题.

Exp*_*lls 7

MySQL的文件是(你会在使用列汇总使用索引这个很清楚WHERE,JOIN和聚合函数).

因此,在表中的所有列上创建索引没有任何内在错误,即使它是60列.更多的索引有较慢的插入和一些更新将是因为MySQL必须创建密钥,但如果你不创建索引MySQL必须扫描整个表,如果在比较和连接中只使用非索引列.

我不得不说你很惊讶

  1. 有一个60列的表
  2. 所有这些列都用在JOINWHERE子句中,而不依赖于同一个表中的任何其他列

......但这是一个单独的问题.