我有一列,其中包含唯一的值和完整的表扫描将永远采取。
据我所知
如果使用唯一索引,它将从表的开头开始搜索,然后在找到值时停止
而非唯一索引将在where语句的最近范围内搜索,这就是我所需要的
如果我有包含
Maple Louie
Raphael Gudino
Nereida Tankersley
Alina Colletti
Jeane Lamm
Shonta Forsman
Ciara Cardamone
如果我使用非唯一索引,它会在以下范围内搜索
where name = Jeane Lamm
数据库是否只搜索以j字母开头的名字?
或者它会做全扫描??
1条答案
按热度按时间fjnneemd1#
尽管索引可以完全扫描,但对于许多操作来说,这并不是它们真正的工作方式。
当你有一个平等,如
where name = 'Jeane Lamm'
,然后索引进行查找。这比扫描快得多。索引最常见的结构类似于二叉树,因此搜索特定值的速度非常非常快。这就是为什么索引可以大大提高查询性能的原因之一。