Prisma花费太长时间的MySQL查询执行

时间:2019-08-23 07:24:26

标签: mysql node.js prisma-graphql

我已经建立了一个节点GraphQl服务器(使用GraphQl-yoga),并在docker容器中运行了MySQL数据库,并且我正在使用Prisma与其进行交互(即执行各种数据库操作)。我的数据库随时间增长更快(一个月内消耗了7 GB)。我有10个表,其中一个表有60万行,并且它呈指数增长(每天将近2万行添加到该表中)。在应用程序启动时,它必须从该表中获取数据。现在的问题是我必须每天停止然后重新启动mysql服务,以使我的应用程序正常运行,否则要么花费太多时间来加载数据(从具有6个lac行的表中加载数据),要么就完全停止了工作(并且再次,我必须重新启动MySQL服务,然后它才能正常工作,至少要花一天时间)。我不知道它是否是mysql数据库的问题,特别是具有60万行并迅速增长的表的问题(我是mysql的新手)还是使用执行所有查询的pyramida的问题?有什么可能的方法摆脱这个问题(停止并重新启动mysql服务)?

//棱镜文件夹内datamodel.prisma文件中的表结构

type Topics {
  id: ID! @unique
  createdAt: DateTime! @createdAt
  locationId: Int
  obj: Json
}

1 个答案:

答案 0 :(得分:0)

我不确定Prisma API如何从该表读取数据。

我的简单建议是,首先您必须使用first列阅读last IDcreatedAt作为最后日期,并使用同一列对其进行分组,并获得Min和{{ 1}}。在此第一次读取操作中,仅选择Max ID

然后选择这两个ID之间的记录。因此,您不必每次都读取所有记录。