未登录用户
首 页
书 架
登录系统
注册账号
联系我们
duidaima.com
版权声明
闽ICP备2020021581号
闽公网安备 35020302035485号
搜索
我要提问
随便写写
我要写书
问个数据库组合索引的问题
发布于 3天前
28 热度
4 评论
粘贴萌比
0 粉丝 28 篇博客
关注
打赏
关于数据库索引的一个问题:有复合索引建立于列 a,b,c。那么 where a=1 and b like b% and c=3 命中此索引吗? where a=1 and b > 2 and c=3 命中此索引吗?
主要是 C 列还是否能使用此索引?
用户评论
醉笑依戏语
索引下推,Explain 看一下是不是 Using index condition
2025/6/10 7:52:00
[
0
]
[
0
]
回复
笑颜如初
建议把索引建立为 a c b 的联合索引,至于有没有命中索引,你直接 EXPLAIN 分析下就能看到。sql 不熟,但是大体的意思是 and 会被优化成并列的,所以实际的搜索语句是 a=1 c=3 b like b%,所以为了能够用上所有索引字段,建议你把 c 放到 b 前面。
2025/6/10 7:47:00
[
0
]
[
0
]
回复
捂风挽笑
两个例子都只能命中 a,b ,命中不了 c
2025/6/10 7:42:00
[
0
]
[
0
]
回复
清风挽发
都能利用(a,b,c)中的前缀(a,b),如果(a,b)值分布很稀疏,是可以命中索引的,如果(a,b)很稠密,可能会走全表扫描,或者使用 c 索引(如果 C 是稀疏的,且建立了 c 索引或者(c,...)复合索引)。
2025/6/10 7:37:00
[
0
]
[
0
]
回复
点击加载更多评论
SQLServer技术
95 成员 |
124 话题
+我要提问
+随便写写
可能感兴趣的话题
SQLServer在创建视图时能自动生成自增长的ID吗?
数据库查询中的order by字段过多会影响查询性能吗?
SQLServer中的字段类型varchar(10)和varchar(1000)在性能上有差异吗?
数据库更改字段长度时,系统报:阻止保存要求重新创建表的更改的错误提示