我有一个Web应用程序,可以从数据库中获取数据并显示在数据表中。我在执行此操作时遇到问题,因为我正在获取的数据有太多行(200 000)。因此,当我查询类似select * from table_name;
的内容时
我的应用程序卡住了。
是否可以使用JavaScript处理此问题?
我尝试了分页,但是当数据表为已经渲染的数据创建分页时,我无法确定该怎么做?
有没有一种方法可以通过分页运行查询 后端?
答案 0 :(得分:2)
您可以在MySQL中使用LIMIT
和OFFSET
约束进行分页。我知道一次2 lacs数据会使性能变慢。但是正如您提到的那样,您必须使用JS
。因此,请明确指出,如果您希望将js
作为前端,那么它将无济于事。但是正如您提到的那样,您有一个Web应用程序,如果该应用程序位于Node(as server)
上,那么我可以为您提供建议,这对您有很大帮助。
使用2个变量分别命名为var_pageNo
和var_limit
。现在使用mysql的行查询作为
select * form <tbl_name> LIMIT var_limit OFFSET (var_pageNo * var_limit);
根据此查询进行编码。将变量替换为所需的值。这样可以提高性能,并按照指定的限制获取数据。
希望这会有所帮助。
答案 1 :(得分:2)
在使用mongodb和angularjs时,我遇到了同样的问题。我使用服务器端分页。由于您有大量的记录,因此可以尝试使用相同的方法。
假设您在一页中显示25条记录。
后端:
前端:
因此基本上从table_name LIMIT 25 OFFSET中选择* $ {req.query.pageNumber * 25}将记录数限制为25。当req.query.pageNumber = 1时,它将偏移前25条记录并发送下25条记录。同样,如果req.query.pageNumber = 2,它将抵消前2 * 25条记录并发送51-75条记录。
答案 2 :(得分:1)
有两种处理方式。