索引是否创建新的 table?

Does an index create a new table?

我无法准确理解创建索引时发生的情况。因此,如果我在 (Col1, Col2) 上创建索引。是否会创建一个仅包含 Col1 和 Col2 的新 table,我的查询将在其上 运行?

或者我是否指定我在我的查询中使用索引然后对于该查询并且该查询只有我的 table 现在减少到 (Col1, Col2)?

谢谢

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