0

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

4

2 回答 2

1

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

于 2013-03-14T13:56:27.543 回答
1

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

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

于 2013-03-14T13:57:42.183 回答