MRR

1.表结构


mysql> show create table t_order_detail\G;
*************************** 1. row ***************************
       Table: t_order_detail
Create Table: CREATE TABLE `t_order_detail` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` int(11) DEFAULT NULL,
  `product_name` varchar(100) DEFAULT NULL,
  `create_date` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_create_date` (`create_date`)
) ENGINE=InnoDB AUTO_INCREMENT=500018 DEFAULT CHARSET=latin1

在 create_date 字段上创建了索引


使用了索引


未使用索引

开启MRR
set optimizer_switch='mrr=on,mrr_cost_based=off';


开启MRR之后, 之前未使用索引的SQL语句也使用了索引

MRR

/*+ MRR(t_order_detail) */

你可能感兴趣的:(MRR)