[MySQL] 使用force index强制使用索引

1.在测试一个按照时间的范围查询时,尽管增加了索引,发现使用不到索引,可以使用这个来强制使用索引

测试过程为,创建下面的表,以及创建了联合索引

create table delay_delete_users(
id int auto_increment,email_id int not null default 0 comment 'email表id',email varchar(50) default '' comment 邮箱前缀企业id认域timestamp comment 删除时间tinyint 0未处理,1已清空primary key (id),1)"> email_entid(email,entid),1)"> delete_time(delete_time,clear)
)engine innodb;

 

插入测试数据,进行explain查询

insert into `delay_delete_users` (email,entid,default_domain,delete_time)value(shihan2',23684,appdev.sinanet.com2019-12-10 15:49:16);
12019-12-12 15:49:161);

explain select * from delay_delete_users where delete_time<'2019-12-12' and clear=0; 索引没有使用到,还是进行的全表扫描,看那个扫描行数rows

+----+-------------+--------------------+------------+------+---------------+------+---------+------+------+----------+-------------+
| id | select_type | table              | partitions | type | possible_keys key  | key_len | ref  | rows | filtered | Extra       |
|  1 | SIMPLE      | delay_delete_users NULL       | ALL  | delete_time   NULL NULL    |    7 14.29 | Using where |

explain select * from delay_delete_users force index(delete_time)  where delete_time<'2019-12-12' and clear=0;使用到了索引

--+-------------+--------------------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+
| type  key         | Extra                 | range | delete_time 4       3 index condition |

 

相关文章

优化MySQL数据库发布系统存储的方法有:1.mysql库主从读写分...
使用mysql的方法:在“我的电脑”→右键→“管理”→“服务”...
在mysql中查看root用户权限的方法:1.命令行启动mysql服务;...
MySQL主从复制是用来备份一个与主数据库一样环境的从数据库,...
运行mysql的方法1.启动mysql服务,在“我的电脑”→右键→“...
开启mysql的方法1.可以通过快捷键win+r,输入cmd,打开窗口,...