📅  最后修改于: 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 }