跳到主要内容

工作表索引


什么是索引

我们在查阅图书的某部分内容时,最快的办法通过图书目录查找,这是因为图书目录将每章节的标题和对应页码做了一个排序,我们只需先找到目录标题和页码,就能快速找到目标内容。这就是常见的索引例子。

同样的,在工作表中,我们可以将某个字段或多个字段的组合,基于某种排序方式建立一个存储结构,我们找查询某列数据时根据此排序结构可以快速的定位到对应的行记录,加快搜索速度,这就是索引。

如何创建索引

  1. 进入工作表编辑页面 > 检索加速 > 点击创建索引按钮

  2. 选择需要创建索引的字段

    创建「文本索引」时,不能包含「选项字段」;每个索引只能包含一个「选项字段」

  3. 选择索引类型

    • 唯一索引

      勾选后,索引中的相关字段的组合内容将不允许重复。 例如,将姓名和创建日期两个字段创建为索引。那么这两个字段内容组合将不允许重复。这样就能实现一个人一天只能创建一条记录。

    • 所有文本字段全文索引

      为选择的所有文本字段创建索引。

      每个工作表只允许创建一次文本字段索引。

  4. 点击下方的创建索引按钮完成创建

Tips:

  • 每张工作表最多只能创建5个索引。

  • 每张工作表只能创建一个文本索引或者文本字段全文索引;创建文本索引时,不能包含多选类型字段;每个索引只能包含一个多选类型字段。

  • 建立唯一索引后,字段的值不允许重复。如果字段为非必填,则整个工作表只能有一条为空的数据,以保证数据的唯一性。

  • 支持所有文本字段全文检索。工作表创建文本索引后不可再创建此类型索引。

索引删除和编辑

  • 添加或删除此索引的相关字段

  • 调整字段的排序方式

  • 修改索引名称

    • 系统默认创建的index_rowid索引不支持改名称
  • 删除索引

Q&A

唯一索引索创建失败?

创建唯一索引时,要保证工作表中已有的记录不能有重复值,如果有重复值,则创建失败。

表中记录、回收站都不能重复,检查无重复后如果依然提示失败,在回收站中可点击下“立即清空”操作重新创建。

这是因为超过60天未彻底删除的记录不会在回收站显示,有些批量操作也不会显示在回收站,因此可能这些记录中含有重复值,需要收到点击下一次“立即清空”。

如何利用索引加速检索?

为工作表建立索引,就像是为一本字典建立一个可以用拼音检索的目录。创建适合的索引可以非常有效的加快特定查询条件下的记录检索速度。在创建索引之前,你需要了解创建索引的一些基本原则。

哪些工作表需要创建索引?

如果工作表的数据量比较大(通常为数万或数十万以上),而且在查询工作表时已经出现明显的加载延迟,那就可以在该工作表上创建索引以尝试加快检索速度。

创建索引时如何选择索引字段?

在视图、筛选、快速筛选等查询场景中被检索的字段或者在视图、子表、关联记录中被排序的字段才需要创建索引。 选择索引字段时请记住一个原则:记录中重复值越少的字段,越适合建立索引。例如一个不允许重复的「商品编号」字段,就非常适合创建索引;反之,一个用于记录男、女的「性别」字段,则不适合创建索引。

如果一些字段总是需要一起参与检索,它们组合起来之后的重复率更低,例如「First Name」和「Last Name」,那么你可以同时选择这两个字段创建一个复合索引,比为这两个字段分别创建索引效果更好。

索引字段排序有什么用?

索引字段的排序和你在视图中使用此字段参与排序的规则有关。当索引只有一个字段时,视图中排序的方向不会影响检索的加速;除此之外,请尽量保证在视图中的字段排序方式与索引中设置的一致,否则检索可能不会被加速。

索引越多越好吗?

并非如此。索引只会加速检索,而在新增、更新、删除记录时系统会花费更多的时间用于更新索引,过多的索引会很明显的降低这些操作的速度,甚至影响到查询的速度。

系统会自动为我建立索引吗?

是的,我们会根据公有云平台每天的访问日志,自动学习和智能分析被频繁使用的查询语句,并自动创建合适的索引。所以,请不要随意修改和删除不是由你自己创建的索引。私有部署环境暂不支持自动创建索引。

多字段索引对单字段有效吗?

要在查询时利用复合索引,需要符合查询前缀匹配原则。例如在查询学生学籍档案时,建立了顺序为「姓名」、「毕业时间」、「专业」三个字段的复合索 引,则同时查询「姓名+毕业时间+专业」三个条件、同时查询「姓名+毕业时间」或单独查询「姓名」条件时均可利用索引快速得到查询结果(需要符合上 面索引排序的规则)。但只查询 「毕业时间+专业」条件、单独查询「毕业时间」或「专业」条件时,索引是不生效的,无法加速检索。