如果经常在 Access 中依据特定的字段搜索表或对表的记录进行排序,则可以通过创建该字段的索引来加快执行这些操作的速度。 Access 在表中使用索引就如同你在书中使用索引一样:为了查找数据,Access 会在索引中查找数据的位置。 在一些情况下,例如对于主键,Access 会自动为你创建索引。 在另一些情况下,你可能需要自己创建索引。
本文介绍索引,并说明如何确定为哪些字段创建索引,以及如何创建、删除或更改索引。 本文还说明 Access 在哪些情况下会自动创建索引。
本文内容
注意: 不能使用本文所述的方法为 Web 数据库中的表创建索引。 Web 数据库的性能取决于托管 Web 数据库的 SharePoint 服务器等多个因素的性能。
什么是索引?
可以使用索引帮助 Access 更快地查找记录并对其排序。 索引根据选择编制索引的字段存储记录的位置。 Access 从索引获得位置后,就可通过直接移动到正确位置来检索数据。 通过这种方式,使用索引可以比扫描所有记录查找数据快得多。
确定为哪些字段创建索引
可以创建基于一个或多个字段的索引。 可能希望对以下字段编制索引:频繁搜索的字段、排序的字段和联接到多个表查询中其他表中的字段。 索引可加速搜索和查询,但在添加或更新数据时会降低性能。 如果在包含一个或多个索引字段的表中输入数据,则每次添加或更改记录时,Access 必须更新索引。 使用追加查询或追加导入的记录来添加记录在目标表包含索引时也可能很慢。
注意: 自动对表的主键编制索引。
无法为数据类型为“OLE 对象”、“计算”或“附加”的字段创建索引。 对于其他字段,如果满足以下所有条件,则考虑为字段创建索引:
-
字段的数据类型为短文本、长文本、数字、日期/时间、自动编号、货币、是/否或超链接。
-
预期会搜索存储在字段中的值。
-
预期会对字段中的值进行排序。
-
预期会在字段中存储许多不同的值。 如果字段中的许多值都是相同的,则索引可能无法显著加快查询速度。
多字段索引
如果觉得自己将经常同时依据两个或更多个字段进行搜索或排序,则可以为该字段组合创建索引。 例如,如果经常在同一个查询中为“供应商”和“产品名称”字段设置条件,则在这两个字段上创建多字段索引就很有意义。
依据多字段索引对表进行排序时,Access 会先依据为索引定义的第一个字段来进行排序。 创建多字段索引时,要设置字段的次序。 如果在第一个字段中的记录具有重复值,则 Access 会接着依据为索引定义的第二个字段来进行排序,依次类推。
在一个多字段索引中最多可以包含 10 个字段。
创建索引
要创建索引,请先决定是创建单字段索引还是多字段索引。 通过设置“索引”属性可创建单字段索引。 下表列出了“索引”属性的可能设置。
“索引”属性的设置 |
含义 |
---|---|
否 |
不在此字段上创建索引(或删除现有索引) |
是(有重复) |
在此字段上创建索引 |
是(无重复) |
在此字段上创建唯一索引 |
如果创建唯一索引,则 Access 不允许在字段中输入这样的新值:该值已在其他记录的同一字段中存在。 Access 会自动为主键创建唯一索引,但你可能也想禁止其他字段中的重复值。 例如,可以在一个存储序列号的字段上创建唯一索引,以便不会有两个产品具有相同的序列号。
创建单字段索引。
-
在“导航窗格”中,右键单击想在其中创建索引的表的名称,然后在快捷菜单上单击“设计视图”。
-
单击您想创建索引的字段的“字段名称”。
-
在“字段属性”下,单击“常规”选项卡。
-
在“索引”属性中,如果想允许重复,则单击“是(有重复)”,否则单击“是(无重复)”以创建唯一索引。
-
若要保存更改,单击“快速访问工具栏”上的“保存”,或者按 Ctrl+S。
创建多字段索引。
若要为表创建多字段索引,请为索引中的每个字段包含一行,并且仅在第一行中包含索引名称。 Access 将所有行视为同一索引的一部分,直至它遇到包含另一个索引名称的行为止。 若要插入一行,请右键单击想插入行的位置,然后在快捷菜单上单击“插入行”。
-
在“导航窗格”中,右键单击想在其中创建索引的表的名称,然后在快捷菜单上单击“设计视图”。
-
在“设计”选项卡上的“显示/隐藏”组中,单击“索引”。
此时会出现“索引”窗口。 调整窗口大小,以便显示一些空白行和索引属性。
-
在“索引名称”列中,在第一个空白行内键入索引的名称。 可以按照某一个索引字段的名称来命名索引,也可以使用其他名称。
-
在“字段名称”列中,单击箭头,然后单击想用于索引的第一个字段。
-
在下一行中,将“索引名称”列留空,然后,在“字段名称”列中单击索引的第二个字段。 重复此步,直至选择了要包含在索引中的所有字段为止。
-
要更改字段值的排序次序,请在“索引”窗口的“排序次序”列中单击“升序”或“降序”。 默认排序顺序是升序。
-
在“索引”窗口中的“索引属性”下,为“索引名称”列中包含索引名称的行设置索引属性。 请依据下表来设置属性。
标签
值
主键
如果为“是”,则索引为主键。
唯一
如果为“是”,则索引中的每个值必须唯一。
忽略空值
如果为“是”,则在索引字段中具有空值的记录被排除在索引之外。
-
若要保存更改,单击“快速访问工具栏”上的“保存”,或者按 Ctrl+S。
-
关闭“索引”窗口。
删除索引
如果发现某个索引已变得多余或对性能的影响太大,则可以删除它。 删除索引时,只会删除索引而不会删除建立索引时所依据的字段。
-
在“导航窗格”中,右键单击想在其中删除索引的表的名称,然后在快捷菜单上单击“设计视图”。
-
在“设计”选项卡上的“显示/隐藏”组中,单击“索引”。
此时会出现“索引”窗口。 调整窗口大小,以便显示一些空白行和索引属性。
-
在“索引”窗口中,选择包含您想删除的索引的行,然后按 Delete。
-
若要保存更改,单击“快速访问工具栏”上的“保存”,或者按 Ctrl+S。
-
关闭“索引”窗口。
查看和编辑索引
你可能想查看表的索引,以衡量它们对性能的影响,或者确保为特定的字段创建了索引。
-
在“导航窗格”中,右键单击想在其中编辑索引的表的名称,然后在快捷菜单上单击“设计视图”。
-
在“设计”选项卡上的“显示/隐藏”组中,单击“索引”。
此时会出现“索引”窗口。 调整窗口大小,以便显示一些空白行和索引属性。
-
按照您的需要查看或编辑索引及索引属性。
-
若要保存更改,单击“快速访问工具栏”上的“保存”,或者按 Ctrl+S。
-
关闭“索引”窗口。
自动创建索引
在某些情况下,Access 会自动为您创建索引。 例如,会自动对指定为表的主键的任何字段创建索引。
自动创建索引的另一个来源是“Access 选项”对话框中的“在导入/创建时自动索引”选项。 对于名称以在“在导入/创建时自动索引”框中输入的字符(例如 ID、key、code 或 num)开始或结束的任何字段,Access 都会自动为它们创建索引。 若要查看或更改当前的设置,请执行下列步骤:
-
单击“文件”>“选项”。
-
单击“对象设计器”,然后在“表设计”下的“在导入/创建时自动索引”框中添加、编辑或删除值。 使用分号 (;) 来分隔值。
注意: 如果字段名以此框中列出的值开始或结束,则会自动为字段创建索引。
-
单击“确定”。
由于每一个额外的索引均需要 Access 执行额外的工作,因此,在添加或更新数据时性能会降低。 这样一来,你可能需要考虑更改在“在导入/创建时自动索引”框中显示的值,或减少值的数量,以最大程度地减少所创建的索引数量。