我需要从DB获取大量数据(可能是大约10K记录)并将其显示为报告(我使用DataTable),并且它具有数据过滤/搜索和分页。
问题 - 从以下选项中选择哪一个是最佳/推荐方式,
如果我们有其他最佳方式,请指导我。
谢谢,
答案 0 :(得分:-1)
我不熟悉DataTable,但它似乎与我熟悉的jqGrid类似。
我更喜欢你提出的解决方案#2。你最好只取你需要的东西。如果您只显示100行,那么如果您只显示100行,则一次性获取10k行会浪费(在带宽和本地内存使用方面)。
在MySQL端使用LIMIT仅获取所需的记录。如果您想要第3页的记录200到300,您可以在查询结尾添加LIMIT 200,100(LIMIT的第一个参数表示"从200&#34开始) ;第二个说"获取100行。")如果DataTable像jqGrid一样工作,你应该能够重新查询数据库并在用户更改页面时重新填充表格,并且这个获取将完成在后台使用AJAX,可以节省带宽。除了查询结尾处LIMIT指定的范围外,您的查询将是相同的。
以这种方式思考:假设您使用GMail并且您从不存档您的邮件,因此您的收件箱包含20,000封电子邮件,但每页只显示100封。您是否认为Google设计了GMail前端,以便一次性获取所有20k主题和行,并在本地存储,或者在用户更改页面时再次查询服务器? (它是后者。)