首页 > 解决方案 > 使用 sequelize 时打字稿比 javascript 慢?

问题描述

我正在将 Web 应用程序从 javascript 迁移到 typescript。而且我注意到,与 javascript 相比,查询结果有时会慢一些。但这并不一致。

我有两个表 - 用户和团队。一个用户可以有多个团队。所以是 hasMany 和 belongsTo 之间的关联。

团队模型

import {Model, Table, Column, Default} from 'sequelize-typescript';
@Table
export class Team extends Model {

  @Column name!: string;
  @Default(true)
  @Column isActive!: boolean;
}

用户模型

import {Model, Table, Column, Default,DataType} from 'sequelize-typescript';

@Table
export class User extends Model {

  @Column firstName!: string;
  @Column lastName!: string;
  @Column email!: string;
  @Default(true)
  @Column isActivated!: boolean;
  @Column source!: string;
  @Column(DataType.JSON)
  profileData: string;
  @Column(DataType.JSON)
  settings: string;
  @Column(DataType.JSON)
  paymentDetails: string;
}

该协会

Team.belongsTo(User, { foreignKey: "fk_ownerId", as: 'Owner' });
User.hasMany(Team, { foreignKey: "fk_ownerId", as: 'OwnedTeams' }); 

这是我的结果

30k records

typescript
user ins query: 2.955s
user query: 2.134s

javascript
user ins query: 3.785s
user query: 1.947s

50k records

typescript
team ins query: 4.621s
team query: 2.601s

javascript
team ins query: 4.352s
team query: 2.340s

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "sourceMap": true,
        "strictNullChecks": false,
        "noUnusedLocals": true,
        "pretty": true,
        "skipLibCheck": true,
        "lib": [
            "es2015"
        ]
    }
}

我正在运行tsc --build以生成构建。有什么我做错了吗?

标签: javascripttypescriptsequelize.js

解决方案


推荐阅读