📜  TypeORM-指数

📅  最后修改于: 2020-10-19 03:43:35             🧑  作者: Mango


通常,建立索引是通过优化数据存储来优化数据库性能的过程。它用于快速定位和访问数据库中的数据。本节说明有关如何在TypeORM中使用索引。指数分为不同类型。让我们详细地逐一进行。

列索引

我们可以使用@Index为特定列创建索引。考虑如下所示的Customer实体示例,并为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 }

例如,下面是为“名称”列指定唯一索引的代码-

@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 }