本文出处:http://www.cnblogs.com/wy123/p/7366486.html
(保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他)
mysql执行计划中的extra列中表明了执行计划的每一步中的实现细节,其中包含了与索引相关的一些细节信息
其中跟索引有关的using index 在不同的情况下会出现Using index, Using where Using index ,Using index condition等
那么Using index 和 Using where;Using index 有什么区别?网上搜了一大把文章,说实在话也没怎么弄懂,于是就自己动手试试。
本文仅从最简单的单表去测试using index 和 using where using index以及简单测试using index condition的情况的出现时机 。
执行计划的生成与表结构,表数据量,索引结构,统计信息等等上下文等多种环境有关,无法一概而论,复杂情况另论。
测试环境搭建
测试表以及测试数据搭建,类似于订单表和订单明细表,暂时先用订单表做测试
测试表结构

create table test_order
(
id int auto_increment primary key,
user_id int,
order_id int,
order_status tinyint,
create_date datetime
);
create table test_orderdetail
(
id int auto_increment primary key,
order_id int,
product_name varchar(100),
cnt int,
create_date datetime
);
create index idx_userid_order_id_createdate on test_order(user_id,order_id,create_date);
create index idx_orderid_productname on test_orderdetail(order_id,product_name);

本文介绍了MySQL执行计划中关于索引的细节,特别是`Using index`和`Using where; Using index`的区别。通过示例展示了它们在不同查询条件下的应用,并解释了`Using index condition`的情况。文章强调了执行计划的生成受多种因素影响,不能一概而论,并提供了一些测试案例来说明这些概念。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



