mysql 前缀索引

前缀索引

前缀索引在 MySQL 中是一种优化索引存储的方式,特别适用于长字符串字段。通过只索引字段的前 N 个字符,可以减少索引占用的存储空间。然而,前缀索引可能会降低索引的 选择性,影响查询性能。下面我将详细解释为什么前缀索引会降低索引选择性及其对性能的影响。

什么是索引选择性?

索引选择性(Index Selectivity)指的是索引在查询时区分不同记录的能力,用于衡量索引的效率。选择性越高,查询时匹配的记录越少,查询效率越高。

选择性公式:
索引选择性 = (索引字段中唯一值的数量) / (表中记录的总数)

理想的选择性是接近 1(例如唯一索引),意味着每次查询几乎可以通过索引唯一地确定一行记录。

低选择性意味着索引匹配的记录较多,查询时会扫描更多行,性能较差。

举例说明

假设有一列 VARCHAR(100) 类型的字段,其中存储了用户的电子邮件地址,如下所示:

id      email
1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wending-Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值