查询不使用索引

时间:2015-10-29 02:29:56

标签: mysql

我有一个查询。

SELECT id_id FROM videos_member ORDER BY date_id DESC LIMIT 0,30

这是表格

CREATE TABLE IF NOT EXISTS `videos` (
  `id_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `date_id` int(11) NOT NULL,
  PRIMARY KEY (`id_id`),
  KEY `date_id` (`date_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;

我一直得到这个

id select_type table   type possible_keys key  key_len ref  rows  Extra
1  SIMPLE      videos  ALL  NULL          NULL NULL    NULL 342   Using filesort

为什么没有使用索引?

1 个答案:

答案 0 :(得分:1)

该表包含(或至少MySQL认为它包含)342行。这很小,很可能适合单个物理存储块,这意味着它可以在单个读取操作中读取。使用索引至少需要两次读取操作。所以MySQL在这里可能很聪明,并且意识到一次读取整个表比读取索引然后用它来访问表更有效。
换句话说,如果在表中插入更多行,则计划可能会更改为使用索引。