我需要在我的表(列)中添加索引并偶然发现这篇文章:
Quote:"话虽如此,你可以明确地添加很多无意义的索引到一个不会做任何事情的表.将B-Tree索引添加到具有2个不同值的列将是没有意义的,因为它不会在查找数据方面添加任何内容.列中的值越独特,它就越能从索引中受益."
如果只有两个不同的值,那么指数真的没有意义吗?给出如下表(MySQL数据库,InnoDB)
Id (BIGINT)
fullname (VARCHAR)
address (VARCHAR)
status (VARCHAR)
Run Code Online (Sandbox Code Playgroud)
更多条件:
我的理解是,如果没有状态索引,select where status=’enabled’会导致完整的表扫描有3亿条记录要处理吗?
当我在状态上使用BTREE索引时查找的效率如何?
我应该索引这个专栏吗?
MySQL InnoDB提供了哪些替代方案(可能是任何其他索引),通过给定示例中的"where status ="enabled"子句有效地查找记录,并且值的基数/选择性非常低?