javascript - 使用 MariaDB、Sequelize 和 Node.js 获取数百万条记录以显示在 DevExtreme PivotGrid 中

标签 javascript node.js mariadb sequelize.js devextreme

标题已经总结了。

我目前面临的任务是:一条 SELECT 语句产生 360 万条包含许多列的记录。这个完整的数据包应该被发送到客户端,这样浏览器就可以在一个枢轴网格中显示所有内容。不幸的是,分页不是一种选择。

客户端使用的栈是 MariaDB、Node.js v8.11.3、Sequelize v3 和 DevExtreme。

正如您所想象的那样, Node 服务器会因如此多的数据而崩溃。

如果您知道如何实现这一点,或者如果您有过此类任务的经验并得出结论,这还不能通过 Web 应用程序完成,我将不胜感激。

非常感谢你,祝你有美好的一天!

帕特里克

最佳答案

回答你的问题:你不能。

直接向客户提供庞大的数据集通常不是一个好主意。 想象一下,对于您的示例数据,每行 1kb,您将加载 3Gb 的数据。 必须在网络上发送如此多的数据,因此服务器/客户端将耗尽内存,或者如果没有问题,加载和使用将非常缓慢。

这里没有直接的解决方案,但您可以避免发送那么多数据 通过重新思考这些数据现在如何存在以仅发送这些数据的聚合,或者通过使用使用分页的客户端库(devexpress 的数据透视表不这样做)。

只是为了回答部分问题,您可以通过避免在使用 streaming 之类的技术将整个数据集发送到客户端之前将其加载到内存中来避免崩溃 Node.js。和网络套接字。

关于javascript - 使用 MariaDB、Sequelize 和 Node.js 获取数百万条记录以显示在 DevExtreme PivotGrid 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769109/

相关文章:

javascript - Codeigniter jquery ajax登录: get value from database and compare data entered

javascript - 使用 Javascript 手动插入 ObjectId

javascript - 从 Can.Model 获取直接 Json

mysql - 如何使用sequelize(mysql)与AngularJS + NodeJS一起统计数据?

mysql - 高 CPU 消耗 MySQL

mysql - 生成的列在 mysql mariadb 中添加带有计数器的时间戳列

javascript - 在鼠标悬停上选择具有相同类的多个元素的 div 中的元素

javascript - 如何在javascript中收集值?

node.js - 使用 Promise 调用 Node.js 中的异步递归函数

java - 无法使用 Java 和 Mariadb 连接到远程数据库