MySQL:使用ORDER BY时避免使用filesort

时间:2015-04-14 15:50:08

标签: mysql sql performance filesort

    CREATE TABLE table1 (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`kid` int(10) unsigned NOT NULL,
`table_group` varchar(100) COLLATE utf8_bin NOT NULL)
ENGINE=InnoDB;

我在下面的列上有索引;

PRIMARY KEY (`id`)
KEY `index1` (`kid`,`table_group`);

该表有500万行与where子句匹配;当我对下面的查询进行解释时,它正在执行filesort和运行时限制,需要10秒,这是非常高的。

mysql> explain select * from db1.table1 FORCE INDEX(index1) where kid=187 and table_group in ('NOT_PRESENT', 'NOTHING', 'PERROR') order by id limit 200\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: tabl1
         type: range
possible_keys: index1
          key: index1
      key_len: 306
          ref: NULL
         rows: 1052764
        Extra: Using index condition; Using filesort

我想避免这个文件夹;请帮忙

0 个答案:

没有答案