02.mysql调优--数据类型和schema优化

本文详细介绍了MySQL中如何创建和使用组合索引,以及不同类型的查询如何利用索引来提高性能。通过示例展示了全值匹配、最左匹配原则、部分匹配和范围查询等场景,并解释了为何某些查询无法使用索引。对于数据库管理员和开发者来说,理解这些原理对于提升数据库查询效率至关重要。

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

学习内容:无

create table staffs(
    id int primary key auto_increment,
    name varchar(24) not null default '' comment '姓名',
    age int not null default 0 comment '年龄',
    pos varchar(20) not null default '' comment '职位',
    add_time TIMESTAMP not null default CURRENT_TIMESTAMP comment '入职时间'
)charset utf8 comment '员工记录表';

添加组合索引:alter table staffs add index idx_nap(name,age,pos);

查看索引:show index from staffs;


索引类型:

  • 全值匹配

explain select * from staffs where name = 'jarry' and age = 23 and pos = 'dev';

  • 最左匹配,只匹配前面的几列:

explain select * from staffs where name = 'jarry' and age = 23;

explain select * from staffs where name = 'jarry';

  • 匹配列全缀:可以匹配某一列值的开头部分

explain select * from staffs where name like 'j%';

注意:这两种情况没有使用到索引:

explain select * from staffs where name like '%jarry%';

explain select * from staffs where name like '%jarry';

  • 匹配范围值

explain select * from staffs where name > 'jarry';

  • 精确匹配某一列并范围匹配某一列

可以查询第一列的全部和第二列的一部分

explain select * from staffs where name ='jarry' and age >'25';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值