首页 > 数据库技术 > 详细

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

时间:2019-12-12 21:05:01      阅读:93      评论:0      收藏:0      [点我收藏+]

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

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

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

 

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

insert into `delay_delete_users` (email,entid,default_domain,delete_time)value(shihan2,23684,appdev.sinanet.com,2019-12-10 15:49:16);
insert into `delay_delete_users` (email,entid,default_domain,delete_time,clear)value(shihan2,23684,appdev.sinanet.com,2019-12-10 15:49:16,1);
insert into `delay_delete_users` (email,entid,default_domain,delete_time,clear)value(shihan2,23684,appdev.sinanet.com,2019-12-12 15:49:16,1);

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    | 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;

+----+-------------+--------------------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+
| id | select_type | table              | partitions | type  | possible_keys | key         | key_len | ref  | rows | filtered | Extra                 |
+----+-------------+--------------------+------------+-------+---------------+-------------+---------+------+------+----------+-----------------------+
|  1 | SIMPLE      | delay_delete_users | NULL       | range | delete_time   | delete_time | 4       | NULL |    3 |    14.29 | Using index condition |

 

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

原文:https://www.cnblogs.com/taoshihan/p/12031269.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!