mysql 单列索引 和 多列缩影

本文讨论了在数据库查询优化中联合索引的应用,包括如何选择创建联合索引的字段,以及联合索引相比于单列索引的优势和局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A  经常使用 多个条件共同作为筛选条件的  索引选择

如从user 表中检索出 姓名为'张'年龄为20 性别为男 的 用户.     可以有一下几种思路,

1.姓名 年龄,性别 其中一个 创建  索引 , mysql  通过索引 快速定位到符合 其中 一个条件的 数据 在 进行  筛选.

2创建   联合(多列)索引 mysql  通过索引 定位到 符合 符合 其3个条件的  数据  并返回.

3 为这3个字段分别创建单列索引.   但是 mysql 并不会 用过  这3个索引 去  定位 数据  ,  只会 从 其中 一个索引中选择  一个 mysql  认为最合适的 索引 进行检索  .

ALTER TABLE tabname ADD INDEX indexname (name,age,sex); 

////

综上所言 

为经常要  一起作为 筛选条件的数据  创建联合索引  是  最合适的 方法




B 联合(多列)索引  的优缺点

优点 联合索引 作为范围广  ,为 name,age,sex 创建联合索引相当于 为这3个列分别创建索引 . 其可以利用到索引的情况 可以有多种 , 但是 遵行  最左规则 ,如创建索引是  index  indexname(name,age,sex)  按照 这个顺序 存放时,    以下 筛选t条件  可以使用  此联合索引 (id,name,age) ,(id,name) ,(id)   和(id,sex )  即创建联合索引时 最左边的 列 出现即可

缺点 联合索引不同于 单列索引 会残生大量的索引 文件  (并是不按单列索引 相加得到   在存放文件的 大小 应该是 按照相乘计算  带验证)      并且在添加 删除和 修改数据时 也会降低 效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值