1

私はテーブルを持っています:

CREATE TABLE  `ais`.`last_location` (
  `timestamp` timestamp NOT NULL default '0000-00-00 00:00:00',
  `message_type` tinyint(4) NOT NULL default '0',
  `repeat_indicator` tinyint(4) NOT NULL default '0',
  `mmsi` int(11) NOT NULL default '0',
  `navigation_status` tinyint(4) NOT NULL default '0',
  `rot` tinyint(4) NOT NULL default '0',
  `sog` smallint(6) NOT NULL default '0',
  `position_accuracy` tinyint(4) NOT NULL default '0',
  `longitude` int(11) NOT NULL default '0',
  `latitude` int(11) NOT NULL default '0',
  `cog` smallint(6) NOT NULL default '0',
  `hdg` smallint(6) NOT NULL default '0',
  `time_stamp` tinyint(4) NOT NULL default '0',
  `maneuver_indicator` tinyint(4) NOT NULL default '0',
  `spare` tinyint(4) NOT NULL default '0',
  `raim_flag` tinyint(4) NOT NULL default '0',
  `sotdma_sync_state` tinyint(4) NOT NULL default '0',
  `sotdma_slot_timeout` tinyint(4) NOT NULL default '0',
  `sotdma_slot_offset` smallint(6) NOT NULL default '0',
  PRIMARY KEY  USING BTREE (`mmsi`),
  KEY `Index_2` (`timestamp`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"

そして、私はクエリに説明します:

EXPLAIN SELECT * 
FROM last_location 
WHERE `timestamp` BETWEEN '2013-01-01 12:00:00' AND '2013-06-03 11:30:00'

1, 'SIMPLE', 'last_location', 'range', 'Index_2', 'Index_2', '4', '', 83, 'Using where'

EXPLAIN SELECT * 
FROM last_location 
WHERE `timestamp` BETWEEN '2013-01-01 12:00:00' AND '2013-06-03 11:40:00'

1, 'SIMPLE', 'last_location', 'ALL', 'Index_2', '', '', '', 478, 'Using where'

11:30 までの検索と 11:40 までの検索の違いを誰か教えてもらえますか? 11:30 を使用すると、すべて問題ないように見えますか? しかし、11:40 を使用すると、もうインデックスは使用されませんか?

4

2 に答える 2