在数据表中显示数百万条记录
Posted
技术标签:
【中文标题】在数据表中显示数百万条记录【英文标题】:showing millions of records in data table 【发布时间】:2012-10-12 12:32:51 【问题描述】:我需要在分页表中显示数百万条记录。
所以想知道根据性能选择哪一个更好。
1.jquery jqGrid
2.Alloy UI数据表
3.数据表
环境:Liferay 6.0 CE
【问题讨论】:
Jquery jqGrid 很好用,其他我不知道。 【参考方案1】:没关系:如果你向客户端传输数百万条记录,然后依赖任何 JS 库进行分页,你很快就会在浏览器上耗尽内存(如果你的用户有耐心的话等待数据传输)。
您宁愿寻找服务器端和客户端分页以及动态加载的组合。在那里,我建议使用您最熟悉的库和服务器端框架,因为您传输的数据量并不能证明进行“性能优化”是合理的。不转移所有内容是您可以在性能方面进行的优化 - 不是 JS 库的选择
【讨论】:
【参考方案2】:你有一个显示器可以在一个表格中显示数百万条数据而无需分页吗?
你认识一个会读取所有数百万条数据记录的用户吗?
如果你对这两个问题的回答都是“否”,那么你应该很清楚你确实需要分页。
如果您对这个问题进行更多的思考,您就会明白没有用户会浏览数百万行的所有页面。所以用分页显示数百万条记录事件也是没有意义的。
可能需要一种在数据集中进行过滤或搜索的灵活方式。在这种情况下,它只能显示几行数据。因此,用户应该成为searching toolbar 中的一些控件,并且应该获得一些搜索对话框(simple one 或complex),用户可以使用它来过滤数据。您可以提供某种面向问题的搜索模板。请参阅here jqGrid 中的使用模板示例。我基于 jqGrid 进行所有引用,但同样的问题存在于您将使用的任何类型的表中。
您应该以任何方式更改您的原始问题并考虑一些替代方案,这些替代方案提供用户 GUI 来分析与某些过滤器相关的数据,而不是仅仅在网格中显示大量不需要的信息。
【讨论】:
感谢您的回复...我修改了我的问题以便更好地理解..所以想知道什么是更好的选择..如果您知道任何其他图书馆,请告诉我..谢谢 @Gautam:我发表了我对关闭问题here 的看法。此外,我试图在我的回答中描述您确实需要过滤或搜索数据以及分页。如果将在服务器端应用过滤器,则网格中显示的结果将只有一些数据页面。因此可以选择 any 网格来显示结果。如果数据过滤产生超过 10 个页面,您可以为用户显示“过滤太不明确:过滤数据 XXX 行数”而不是数据。这是我对问题的看法。 谢谢...那个链接对我帮助很大。【参考方案3】:您为什么不喜欢 liferay 标签库来显示您的数据? Liferay 有一个搜索容器标签库,允许您构建自定义的基本/高级搜索表单并显示过滤数据的分页结果。 它还允许用户从 5 到 75 之间选择他们喜欢的页面大小(但我认为可以通过编程方式修改限制)
它很容易实现,你可以在 liferay 源代码中找到一些 taglib 使用示例。
基础搜索容器(不带搜索表单)可以用3个标签完成,只需几行jsp代码...
如果你喜欢,我可以发布一个例子..
【讨论】:
感谢回复..实际上 jqGrid 最适合我的要求,所以我不使用搜索容器,因为我将在如此多的定制中结束 :)...再次感谢以上是关于在数据表中显示数百万条记录的主要内容,如果未能解决你的问题,请参考以下文章
具有数百万条记录的 2 个数据帧之间的 Pyspark 交叉连接
将数百批 500k - 300 万条记录插入 PostgreSQL 数据库的最快方法