Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MariaDB Connector使用Sequelize崩溃节点获取360万条记录。知道为什么吗?_Node.js_Mariadb_Sequelize.js - Fatal编程技术网

Node.js MariaDB Connector使用Sequelize崩溃节点获取360万条记录。知道为什么吗?

Node.js MariaDB Connector使用Sequelize崩溃节点获取360万条记录。知道为什么吗?,node.js,mariadb,sequelize.js,Node.js,Mariadb,Sequelize.js,正如标题所说,我正在尝试运行一个原始的SELECT查询,结果是3.6条记录。 当我使用MariaDB连接器()时,它工作正常,只需约2分钟即可完成。 但是Sequelize需要更长的时间,最终节点在20到30分钟后崩溃 你们知道怎么解决这个问题吗 非常感谢您,祝您度过愉快的一天 保重, Patrick执行请求时,sequelize将对基础数据库执行选择 接下来会连续发生两件事: MariaDB将加载与您的条件匹配的所有数据 MariaDB将向sequelize发送所有数据,这将: 过载应用程

正如标题所说,我正在尝试运行一个原始的SELECT查询,结果是3.6条记录。 当我使用MariaDB连接器()时,它工作正常,只需约2分钟即可完成。 但是Sequelize需要更长的时间,最终节点在20到30分钟后崩溃

你们知道怎么解决这个问题吗

非常感谢您,祝您度过愉快的一天

保重,


Patrick

执行请求时,sequelize将对基础数据库执行
选择

接下来会连续发生两件事:

  • MariaDB将加载与您的条件匹配的所有数据

  • MariaDB将向sequelize发送所有数据,这将:

    • 过载应用程序内存(所有数据将存储到node.js内存中)
    • 崩溃续集,因为它不是用来处理那么多数据的
在大型数据集上执行请求时,请使用游标。使用游标,MariaDB将加载所有数据,但sequelize将按组获取数据(例如,sequelize加载100个数据,您对其进行处理,然后它再次加载100个数据,这意味着在node.js内存的顶部将加载100个数据)


执行请求时,sequelize将对基础数据库执行
选择

接下来会连续发生两件事:

  • MariaDB将加载与您的条件匹配的所有数据

  • MariaDB将向sequelize发送所有数据,这将:

    • 过载应用程序内存(所有数据将存储到node.js内存中)
    • 崩溃续集,因为它不是用来处理那么多数据的
在大型数据集上执行请求时,请使用游标。使用游标,MariaDB将加载所有数据,但sequelize将按组获取数据(例如,sequelize加载100个数据,您对其进行处理,然后它再次加载100个数据,这意味着在node.js内存的顶部将加载100个数据)


重新设计应用程序,在数据库中完成更多工作。下载360万行对于任何应用程序来说都是糟糕的设计


如果您想解释一下使用这么多行执行的操作,也许我们可以帮助您创建一个变通方法。(它的工作速度甚至可能超过2分钟!)

重新设计应用程序,以便在数据库中完成更多工作。下载360万行对于任何应用程序来说都是糟糕的设计

如果您想解释一下使用这么多行执行的操作,也许我们可以帮助您创建一个变通方法。(它甚至可以工作2分钟以上!)