我希望在网页上显示60,000条记录,用php从localhost上的mysql数据库中提取记录。这些60,000条记录可能会根据数据输入而改变。
记录有5个文本字段,由于记录数量庞大,需要花费大量时间将数据从mysql服务器发送到Web浏览器。即使在本地主机上,花费的时间大约为15秒。在此期间,页面为空。
我想就如何做到这一点寻求专业意见 1.用另一种方法显示数据,(我不知道用什么方法)或者 2.使用memcache等缓存技术加快从mysql服务器向Web浏览器发送数据。
最后,我将在互联网上部署应用程序,其中滞后将是非常不可接受的(即> 15秒)。
谢谢你,最诚挚的问候!
答案 0 :(得分:4)
我建议尝试AJAX分页。没有用户可以一次查看和分析60k记录。你可以让php显示第一个x
(无论多少适合平均一两个屏幕)记录,以填充2-3页,并让JavaScript监听滚动更改。如果用户开始向下滚动,请让它自动查询下一条y
条记录,并将它们添加到显示列表中。可能还会从列表顶部删除记录。
此外,添加一些快速跳转链接或搜索功能可能会有所帮助,因为您不想向下滚动60k记录进行更改。
这将显着减轻服务器和客户端的负担,因为它一次只需要提供几百条记录。
答案 1 :(得分:2)
你应该看看YUI's DataTable。您应该将数据表挂钩到autocomplete。还有一个例子,他们是如何在YUI2(帮助)中做到的,但是YUI3要快得多。
缓存也很重要。你说你可以使用memcached,这非常好。我是redis的忠实粉丝(但两者都有效,但好消息是redis是我认为的better suited for autocomplete)。甚至还有Redis To go的免费计划。
答案 2 :(得分:0)
另一个重要提示是确保您从数据库中显示数据。换句话说,如果您需要进行任何计算或处理,请避免在循环期间在PHP代码中执行此操作。使用SQL函数来处理数据,名称字段等。数据库擅长于此类事情。当然,这可能适用于您正在做的事情,也可能不适用。