开发一个信息发布平台,数据库中有40w条信息,怎样设计架构使数据流程显示
开发一个信息发布平台,如果服务器有40W信息,客户端初次怎样尽快的把信息抓取出来呢。
目前采用的方式是客户端为indy10(http) 请求 TDrawGrid显示数据,服务器为lnmp(Nginx+php+mysql)
使用josn传输信息
目前如果客户端初次全部抓取数据的话,这样客户端等太久;
客户端还有搜索的功能,之前的想法是初次数据全部抓取出来存入list结构中,但这样的话搜索起来太慢,
有啥比较好的架构吗,用三层数据库吗
[解决办法]
40w条全部抓过来显示给用户?用户看的过来么?
[解决办法]
这么多的数据,一下放到客户端,没有意义。再说了,除了用意念,没有更快的方法能在很短的时间内把40W一下读到客户端。
[解决办法]
BCB的三层在传输数据库数据的时候已经分片打包了,因此数据压缩已经没有意义了
对于40W的数据量要考虑到,这么多的数据一次传输给客户看客户在同一时间是无论如何也看不万的,因此,解决方案如下两条:
1、在传输之前执行查询,将客户真正会感兴趣的数据筛选出来;
2、客户无论如何在同一时间内只能看一个屏幕的数据,因此,可以根据屏幕的高度所能容纳的最大行数传输给客户,比如40或50条等,当客户滚动滚轮或按向下按钮时再次执行查询,将下一组数据取回并显示给客户。
所有类似系统都是这样做的,比如我们现在所用的论坛的楼层就是分页的。
[解决办法]
妖哥太毒... 我也觉得使用分页更好,在客户端直接40W条记录纯粹浪费资源。条件给数据库,数据库返回记录,哪怕最简单的存储过程都能得到很好的性能。