# 索引

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

数据库索引  是一种用于加快数据库表中定位和访问操作的结构。 通过使用索引，您可以减少在处理查询时所需的磁盘访问次数。 您可以为数据库表的一个或多个列创建索引。

索引（ ![索引](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.index.svg)）可以在   数据库  工具窗口中找到。

* 有关其他节点和对象图标的参考信息，请参阅 [数据库工具窗口](database-tool-window.html) 主题中的 [数据源及其元素](database-tool-window.html#icons-for-data-sources-and-their-elements) 章节。

* 关于表列图标，请参阅 [栏目可能的图标组合](database-tool-window.html#possible-icon-combinations-for-columns) 章节。

* 使用 [视图选项](database-tool-window.html#view_options) 菜单中的树对象视图选项隐藏、排序、过滤和分组树对象。

![数据库中的索引](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database_object_index.png)

对于 MongoDB，索引支持数据库版本 4.0 及更高版本。 目前，仅支持显示和删除索引的功能。

Procedure: 创建索引

1. 在   数据库   工具窗口中，展开数据源树直到列的节点。

2. 右键点击表或列节点，然后选择  `新建 | 索引` 。

3. 在打开的对话框中，在   名称  字段中输入索引的名称。

4. 在   列   窗格中，点击   添加   按钮 ( !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg))。

5. 在   列名  字段中，指定要添加到索引中的列的名称。

6. 在   预览   窗格中，您可以查看和更改生成的 SQL 代码。

7. 点击   OK  以添加您的索引。

> **Note:**
> 可用字段和选项取决于 DBMS。 有关更多详细信息，请参阅 DBMS 的官方文档。

![创建索引](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_create_index.png)

## 效率提示

Procedure: 修改生成的索引和键名称的模板

创建索引以及主键和外键约束时，将根据相应模板生成其默认名称。 例如，对于主键，模板是  `{table}_{columns}_pk` 。

* 要查看并修改这些模板，请打开设置 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 并转到  `编辑器 | 代码样式 | SQL | 常规` 。 点击   代码生成   选项卡。

模板可以包含变量和文本。 生成名称时，指定的文本将按字面插入。 例如，当您在  `actor`  表中应用  `{table}_pk`  模板时，生成的主键名称将为  `actor_pk` 。

若要查看有关变量及其用法的信息，请点击某个字段并按 `Ctrl+Q` (Windows), `F1` (macOS), `⌃ J` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Ctrl+Q` (XWin), `Ctrl+Q` (GNOME), `Ctrl+Q` (KDE), `Ctrl+Q` (Emacs), `Ctrl+Q` (Sublime Text), `Ctrl+Q` (Sublime Text (macOS)), `Ctrl+K, I` (Visual Studio), `⌘ K, I` (Visual Studio (macOS)), `Ctrl+Q` (NetBeans), `Alt+Middle-Click` (Eclipse), `⌥ Middle-Click` (Eclipse (macOS))。

`{unique?u:}`  会检查索引是否唯一，并插入相应的字符序列。 如果索引是唯一的，模板会使用位于  `?`  与  `:`  之间指定的字符序列来生成名称。 对于  `{unique?u:}`  模板，则为  `u` 。 如果索引不唯一，则插入  `:`  与  `}`  之间的字符序列。 对于  `{unique?u:}`  模板，则为空。

示例

您有一个  `persons`  表，其中包含列  `FirstName`  和  `LastName` 。  `{table}_{columns}_{unique?u:}index`  模板会为非唯一索引生成以下名称：  `persons_FirstName_LastName_index` 。

![修改生成的索引和键名称的模板](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_modify_templates_for_indexes_and_keys.png)

### 参考

[创建和修改对话框](create-and-modify-dialogs.html#objects_editor) [栏目可能的图标组合](database-tool-window.html#possible-icon-combinations-for-columns) [数据源及其元素](database-tool-window.html#icons-for-data-sources-and-their-elements)

### 相关

[主键](primary-keys.html) [外键](foreign-keys.html)

### 工具 Windows

[数据库工具窗口](database-tool-window.html)

### 导航

### 语言和框架特定指南

[数据库工具和 SQL](relational-databases.html)

