TypeORM - 索引



總體而言,索引是一種透過最佳化資料儲存來最佳化資料庫效能的過程。它用於快速查詢和訪問資料庫中的資料。本節說明如何在 TypeORM 中使用索引。索引分為不同型別。我們來逐一詳細瞭解。

列索引

我們可以使用以下方法為特定列建立索引@Index。考慮一個示例客戶實體,如下所示,並且為firstName列定義了索引,

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; 

@Entity() 
export class Student { 

   @PrimaryGeneratedColumn() 
   id: number; 
   
   @Index() 
   @Column() 
   firstName: string; 
   
   @Column() 
   lastName: string; 
   
   @Column() 
   age: number; 
   
   @Column() 
   address: string; 
}

@Index還允許為索引指定一個名稱 −

@Index("Name-idx") 
@Column() 
firstName: string;

唯一索引

要在列中指定唯一約束,請使用以下屬性 −

{ unique: true }

例如,以下程式碼用於為 Name 列指定唯一索引 −

@Index({ unique: true }) 
@Column() 
firstName: string;

要在多個列上應用索引,我們可以在 @Entity() 之後直接指定它。示例程式碼如下 −

@Entity() 
@Index(["firstName", "lastName"]) @Index(["firstName", "lastName"], { unique: true })

空間索引

空間索引允許訪問空間物件。MySQL 和 PostgreSQL 支援空間索引。要在列中啟用空間索引,請新增以下屬性 −

{ spatial: true }

空間型別有多種子型別,例如幾何、點、線串、多邊形等。例如,如果要在列中新增點空間型別,請使用以下程式碼 −

@Column("point") 
@Index({ spatial: true }) 
point: string;

停用同步

要停用同步,請在裝飾器@Index上使用以下選項 −

{ synchronize: false }
廣告
© . All rights reserved.