使用MariaDB,Sequelize和Node.js提取数百万条记录以显示在DevExtreme PivotGrid中

问题描述 投票:1回答:1

标题已经汇总。

我当前正面临此任务:SELECT语句将产生360万条包含许多列的记录。完整的数据包应发送到客户端,以便浏览器可以在数据透视表网格中显示所有内容。因此,很遗憾,分页不是一种选择。

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

您可以想象,节点服务器由于该数量的数据而崩溃。

我真的很感激如何实现这一目标,或者如果您有执行此任务的经验,并得出结论认为,尚不能使用Web应用程序完成。

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

帕特里克

javascript node.js mariadb sequelize.js devextreme
1个回答
0
投票

要回答您的问题:您不能。

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

这里没有简单的解决方案,但是您可以避免发送那么多数据通过重新考虑现在这些数据的存在方式以仅发送这些数据的聚合,或使用使用分页的客户端库(devexpress的数据透视表不执行此操作)。

仅回答部分问题,您可以通过避免将整个数据集加载到内存中,然后再使用streaming和websocket之类的技术将其发送到客户端,从而避免崩溃Node.js。

© www.soinside.com 2019 - 2024. All rights reserved.