Mysql 索引是否创建新表?

Mysql 索引是否创建新表?,mysql,sql,indexing,rdbms,Mysql,Sql,Indexing,Rdbms,我很难准确理解创建索引时会发生什么。所以如果我在(Col1,Col2)上创建一个索引。是否会创建一个只包含Col1和Col2的新表来运行我的查询 或者我是否指定在查询中使用索引,然后对于该查询,只有我的表现在被缩减为(Col1,Col2) 谢谢当您在表上创建索引时,它不会在内部创建任何新表,而只是创建索引。该索引在物理上是独立的,并且具有像树(通常是B+树)一样组织的数据,这有助于更快地查找,并加快具有where子句的查询,where子句具有创建索引的列名。若不在表上创建索引,那个么该表上的查询

我很难准确理解创建索引时会发生什么。所以如果我在(Col1,Col2)上创建一个索引。是否会创建一个只包含Col1和Col2的新表来运行我的查询

或者我是否指定在查询中使用索引,然后对于该查询,只有我的表现在被缩减为(Col1,Col2)


谢谢

当您在表上创建索引时,它不会在内部创建任何新表,而只是创建索引。该索引在物理上是独立的,并且具有像树(通常是B+树)一样组织的数据,这有助于更快地查找,并加快具有where子句的查询,where子句具有创建索引的列名。若不在表上创建索引,那个么该表上的查询可能必须进行全表扫描才能找到记录。索引可以是唯一的,也可以是非唯一的。

这一点非常清楚,并且与我在下面的链接中找到的视觉表示一致。谢谢你很高兴知道这对你有帮助。