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

标签 mysql sql database

我有包含唯一值的列,并且全表扫描将永远进行。

据我了解

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

虽然非唯一索引将在 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/

相关文章:

python - 如何在Python中正确安装MySQL模块

mysql - Ansible - 如何备份所有 MySQL 数据库?

mysql - 正确使用mysql中的where?

c++ - 在 CMake 中链接 MySQL 库

sql - 将每小时价格历史记录合并到每日

sql - 在数据库中查找重复行

mysql - 使用 mysql 5.6.13 CentOS 6.4 64 位安装 phpmyadmin

sql - 如何通过提供路径来查询邻接关系(在 SQL 中)以获取叶子?

将 .DBF 文件转换为 .MYSQL 的 PHP 脚本

node.js - ElasticSearch重启花费很长时间