小编Xav*_*ier的帖子

MySQL 5.1在索引存在时使用filesort事件

可能我错过了一些愚蠢的事情......显然MySQL 5.1仍然在做一个Filesort,即使有一个索引与ORDER BY子句中的列完全匹配.要在此发布,我已经过度简化了数据模型,但问题仍然存在:

表定义:

CREATE TABLE `event` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `owner_id` int(11) DEFAULT NULL,
  `date_created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `owner_id` (`owner_id`),
  KEY `date_created` (`date_created`),
  CONSTRAINT `event_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `user_profile` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我的问题是,一个简单的SELECT事件显示"正在使用filesort":

explain select * from event order by date_created desc;
Run Code Online (Sandbox Code Playgroud)

并且查询的结果解释了:

id  select_type table   type    possible_keys   key key_len ref rows    Extra   
1   SIMPLE      event   ALL NULL        NULL    NULL    NULL    6       Using filesort
Run Code Online (Sandbox Code Playgroud)

有没有办法让这种类型的查询使用执行filesort的索引insteas? …

mysql optimization performance filesort

6
推荐指数
1
解决办法
1257
查看次数

标签 统计

filesort ×1

mysql ×1

optimization ×1

performance ×1