在包含唯一值的列上添加索引?

时间:2018-05-19 03:39:04

标签: mysql sql database

我的列包含唯一值,全表扫描将永远。

从我的理解

如果我使用唯一索引,它将从表格​​的开头开始搜索,然后在找到值时停止

虽然非唯一索引将搜索where语句的最近范围以及我需要的内容

如果我的列包含

Maple Louie    
Raphael Gudino    
Nereida Tankersley    
Alina Colletti    
Jeane Lamm    
Shonta Forsman    
Ciara Cardamone

如果我使用非唯一索引,它将在

范围内搜索
where name = Jeane Lamm

数据库搜索名称只会以j字母开头吗?

或它会进行全扫描?

1 个答案:

答案 0 :(得分:0)

尽管可以完全扫描索引,但这并不是它们如何适用于许多操作。

如果您具有相等性,例如where name = 'Jeane Lamm',则索引会查找。这比扫描快得多。

索引最常见的结构就像二叉树,因此搜索特定值非常非常快。这就是索引可以极大地提高查询性能的一个原因。