跳至主要内容

工作錶索引


什麼是索引

我們在查閱圖書的某部分內容時,最快的辦法通過圖書目錄查找,這是因為圖書目錄將每章節的標題和對應頁碼做瞭一個排序,我們隻需先找到目錄標題和頁碼,就能快速找到目標內容。這就是常見的索引例子。

同樣的,在工作錶中,我們可以將某個字段或多個字段的組閤,基於某種排序方式建立一個存儲結構,我們找查詢某列數據時根據此排序結構可以快速的定位到對應的行記錄,加快搜索速度,這就是索引。

如何創建索引

  1. 進入工作錶編輯頁麵 > 檢索加速 > 點擊創建索引按鈕

  2. 選擇需要創建索引的字段

    創建「文本索引」時,不能包含「選項字段」;每個索引隻能包含一個「選項字段」

  3. 選擇索引類型

    • 唯一索引

      勾選後,索引中的相關字段的組閤內容將不允許重復。 例如,將姓名和創建日期兩個字段創建為索引。那麼這兩個字段內容組閤將不允許重復。這樣就能實現一個人一天隻能創建一條記錄。

    • 所有文本字段全文索引

      為選擇的所有文本字段創建索引。

      每個工作錶隻允許創建一次文本字段索引。

  4. 點擊下方的創建索引按鈕完成創建

Tips:

  • 每張工作錶最多隻能創建5個索引。

  • 每張工作錶隻能創建一個文本索引或者文本字段全文索引;創建文本索引時,不能包含多選類型字段;每個索引隻能包含一個多選類型字段。

  • 建立唯一索引後,字段的值不允許重復。如果字段為非必填,則整個工作錶隻能有一條為空的數據,以保證數據的唯一性。

  • 支持所有文本字段全文檢索。工作錶創建文本索引後不可再創建此類型索引。

索引刪除和編輯

  • 添加或刪除此索引的相關字段

  • 調整字段的排序方式

  • 修改索引名稱

    • 係統默認創建的index_rowid索引不支持改名稱
  • 刪除索引

Q&A

唯一索引索創建失敗?

創建唯一索引時,要保證工作錶中已有的記錄不能有重復值,如果有重復值,則創建失敗。

錶中記錄、迴收站都不能重復,檢查無重復後如果依然提示失敗,在迴收站中可點擊下“立即清空”操作重新創建。

這是因為超過60天未徹底刪除的記錄不會在迴收站顯示,有些批量操作也不會顯示在迴收站,因此可能這些記錄中含有重復值,需要收到點擊下一次“立即清空”。

如何利用索引加速檢索?

為工作錶建立索引,就像是為一本字典建立一個可以用拼音檢索的目錄。創建適閤的索引可以非常有效的加快特定查詢條件下的記錄檢索速度。在創建索引之前,你需要瞭解創建索引的一些基本原則。

哪些工作錶需要創建索引?

如果工作錶的數據量比較大(通常為數萬或數十萬以上),而且在查詢工作錶時已經齣現明顯的加載延遲,那就可以在該工作錶上創建索引以嘗試加快檢索速度。

創建索引時如何選擇索引字段?

在視圖、篩選、快速篩選等查詢場景中被檢索的字段或者在視圖、子錶、關聯記錄中被排序的字段纔需要創建索引。 選擇索引字段時請記住一個原則:記錄中重復值越少的字段,越適閤建立索引。例如一個不允許重復的「商品編號」字段,就非常適閤創建索引;反之,一個用於記錄男、女的「性彆」字段,則不適閤創建索引。

如果一些字段總是需要一起參與檢索,它們組閤起來之後的重復率更低,例如「First Name」和「Last Name」,那麼你可以同時選擇這兩個字段創建一個復閤索引,比為這兩個字段分彆創建索引效果更好。

索引字段排序有什麼用?

索引字段的排序和你在視圖中使用此字段參與排序的規則有關。當索引隻有一個字段時,視圖中排序的方嚮不會影響檢索的加速;除此之外,請盡量保證在視圖中的字段排序方式與索引中設置的一緻,否則檢索可能不會被加速。

索引越多越好嗎?

並非如此。索引隻會加速檢索,而在新增、更新、刪除記錄時係統會花費更多的時間用於更新索引,過多的索引會很明顯的降低這些操作的速度,甚至影響到查詢的速度。

係統會自動為我建立索引嗎?

是的,我們會根據公有雲平臺每天的訪問日誌,自動學習和智能分析被頻繁使用的查詢語句,並自動創建閤適的索引。所以,請不要隨意修改和刪除不是由你自己創建的索引。私有部署環境暫不支持自動創建索引。

多字段索引對單字段有效嗎?

要在查詢時利用復閤索引,需要符閤查詢前綴匹配原則。例如在查詢學生學籍檔案時,建立瞭順序為「姓名」、「畢業時間」、「專業」三個字段的復閤索 引,則同時查詢「姓名+畢業時間+專業」三個條件、同時查詢「姓名+畢業時間」或單獨查詢「姓名」條件時均可利用索引快速得到查詢結果(需要符閤上 麵索引排序的規則)。但隻查詢 「畢業時間+專業」條件、單獨查詢「畢業時間」或「專業」條件時,索引是不生效的,無法加速檢索。