这个MySQL索引会提高性能吗?

时间:2013-03-14 13:53:52

标签: mysql performance select indexing

我有以下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查询表明它会,但我没有快速的方法来测试大型数据集。

2 个答案:

答案 0 :(得分:1)

索引 where子句中使用列时很有用,或者当列是两个表之间链接的条件的一部分时

索引 / strong>即可。 See MySQL Doc

答案 1 :(得分:1)

是的。即使您仍在进行全表扫描,索引也会使排序操作(由于顺序)不必要。

但它也会增加插入和删除语句的开销!