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

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

最佳答案

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

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

关于mysql - 这个MySQL索引会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15411242/

相关文章:

php - mysql 从多个表中选择,即使一个表不包含 where 子句

php - 从多个表中加速 SELECT

go - 如何在 Go 中选择 os.Stdin 和 http?

mysql - 通过向 8 位字符集添加简单排序规则来更改默认排序

php - CodeIgniter 连接花费的时间太长,但单独的查询是即时的

python - SQLITE3 Python 更新带有变量的记录不起作用?

php - 使用 cURL 获取没有正文的 http-statuscode?

sql - 什么是优化查找子字符串匹配的 Oracle 查询的好方法?

java - 在 Java 中使用大量对象是否存在性能问题

MySQL 用可变数字搜索/替换