在 MySQL 数据库中,语句 KEY key_idx (name)
是用于创建索引的语法,其含义和作用如下:
含义
KEY
是INDEX
的同义词,用于在表中创建普通索引(非唯一索引)。key_idx
是自定义的索引名称(可自由命名),用于标识该索引。(name)
指定对字段name
创建索引(可以是单个字段或多个字段的组合)。
完整示例(在建表语句中):
CREATE TABLE example (
id INT PRIMARY KEY,
name VARCHAR(50),
KEY key_idx (name) -- 对 name 字段创建名为 key_idx 的普通索引
);
作用
加速查询
对name
字段创建索引后,基于该字段的查询(如WHERE name = 'xxx'
)或排序(如ORDER BY name
)会显著提高效率。数据库无需全表扫描,而是通过索引快速定位数据。优化连接和分组
如果查询涉及连接(JOIN
)或分组(GROUP BY name
),索引可以减少临时表和磁盘 I/O 操作。支持覆盖索引
如果查询只需返回索引字段(如SELECT name FROM table WHERE name = 'xxx'
),数据库可直接从索引中获取数据,无需访问表数据行。
注意事项
索引的代价
- 占用额外存储空间。
- 写操作(INSERT/UPDATE/DELETE)需维护索引,可能降低写入性能。
适用场景
- 常用于频繁作为查询条件、排序或分组的字段。
- 数据重复度低的字段效果更好(高区分度)。
与唯一索引的区别
KEY
允许重复值,如果是唯一约束需使用UNIQUE KEY
。
类似语法对比
- 普通索引:
KEY index_name (column)
- 唯一索引:
UNIQUE KEY index_name (column)
- 主键索引:
PRIMARY KEY (column)
(自动隐含唯一性)
总结:KEY key_idx (name)
是一种优化手段,通过空间换时间提升查询性能,但需根据实际业务需求权衡是否添加。
内容由零声教学AI助手提供,问题来源于学员提问