我有以下MySQL表:
CREATE TABLE `my_data` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`tstamp` int(10) unsigned NOT NULL DEFAULT '0',
`name` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
我想仅针对以下SELECT
查询进行优化:
SELECT `id`, `name` FROM `my_data` ORDER BY `name` ASC
无论表的大小如何,添加以下索引都会提高性能吗?
CREATE INDEX `idx_name_id` ON `my_data` (`name`,`id`);
EXPLAIN
查询表明它会,但我没有快速的方法来测试大型数据集。
答案 0 :(得分:1)
索引在 where子句中使用列时很有用,或者当列是两个表之间链接的条件的一部分时 索引 / strong>即可。 See MySQL Doc
答案 1 :(得分:1)
是的。即使您仍在进行全表扫描,索引也会使排序操作(由于顺序)不必要。
但它也会增加插入和删除语句的开销!