我有包含唯一值的列,并且全表扫描将永远进行。
据我了解
如果我使用唯一索引,它将开始从表的开头搜索,然后在找到值时停止
虽然非唯一索引将在 where 语句的最接近范围内进行搜索,并且是我需要的
如果我有包含的列
Maple Louie
Raphael Gudino
Nereida Tankersley
Alina Colletti
Jeane Lamm
Shonta Forsman
Ciara Cardamone
如果我使用非唯一索引,它会在类似的范围内搜索
where name = Jeane Lamm
数据库会搜索仅以 j 字母开头的姓名吗?
或者它将进行全面扫描?
最佳答案
虽然索引可以被完全扫描,但这并不是它们对于许多操作的真正工作方式。
当您有一个等式时,例如 where name = 'Jeane Lamm'
,索引就会进行查找。这比扫描快得多。
索引最常见的结构就像二叉树,因此搜索特定值的速度非常非常快。这就是索引可以极大提高查询性能的原因之一。
关于mysql - 在包含唯一值的列上添加索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421527/