我有一个查询。
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
为什么没有使用索引?
答案 0 :(得分:1)
该表包含(或至少MySQL认为它包含)342行。这很小,很可能适合单个物理存储块,这意味着它可以在单个读取操作中读取。使用索引至少需要两次读取操作。所以MySQL在这里可能很聪明,并且意识到一次读取整个表比读取索引然后用它来访问表更有效。
换句话说,如果在表中插入更多行,则计划可能会更改为使用索引。