索引是否创建新表?

bejyjqdl  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(315)

我很难准确理解创建索引时会发生什么。如果我在(col1,col2)上创建一个索引。是否会创建一个只包含col1和col2的新表来运行我的查询?
或者我是否指定在查询中使用索引,然后对于该查询,只有我的表现在被缩减为(col1,col2)?
谢谢

dxpyg8gm

dxpyg8gm1#

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

相关问题