我有以下 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
查询表明可以,但我没有快速的方法来测试大型数据集。
最佳答案
是的,会的。即使您仍在进行全表扫描,拥有索引将使排序操作(由于排序依据)变得不必要。
但它也会增加插入和删除语句的开销!
关于mysql - 这个MySQL索引会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15411242/