索引会创建一个新表吗?

时间:2018-10-08 17:02:23

标签: mysql sql indexing rdbms

创建索引时,我很难确切了解会发生什么。因此,如果我在(Col1,Col2)上创建索引。是否将创建一个仅包含Col1和Col2的新表,我的查询将在该表上运行?

还是我指定在查询中使用索引,然后对该查询使用该查询,现在仅将我的表简化为(Col1,Col2)?

谢谢

1 个答案:

答案 0 :(得分:1)

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