建表sql:
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 '员工记录表';
INSERT INTO staffs(NAME,age,pos,add_time) VALUES('Z3',22,'manager',NOW());
INSERT INTO staffs(NAME,age,pos,add_time) VALUES('james',23,'dev',NOW());
INSERT INTO staffs(NAME,age,pos,add_time) VALUES('mic',23,'dev',NOW());
select * from staffs;
ALTER TABLE staffs ADD INDEX idx_staffs_nameAgePos(name,age,pos);
下面一次介绍这十点:
1:全值匹配,就是说所建的索引全部用上
2:最佳左前缀法则
3:
left(name,3) 进行了全盘扫描,影响性能;
4:
5:直接看对比图
6:对比图
7:
8:使用覆盖索引解决%%索引失效的问题
对比图:
9:字符串一定要加单引号 否则数字会进行类型转换
10:案例图:使用or 全盘扫描