以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]当一个表的数据量较大时,哪种处理方式比较好  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=40264)

--  作者:loongtai
--  发布时间:2013/9/13 15:34:00
--  [求助]当一个表的数据量较大时,哪种处理方式比较好
现有表A,表A会不断地从数据库中加载记录,使得其容量慢慢增大。
表A有一个标识列,每次操作时只对空标识列的数据进行处理,处理后的数据按处理结果有可能标记为0,1,2,3四种状态。
我能想到的处理方式是以下三种:
处理方式1:利用tables("表A").filter 对表A 进行筛选,然后对筛选后的记录进行处理
处理方式2:利用datatables("表A").select 对表A 进行筛选,然后对筛选后的记录进行处理
处理方式3:分别按照标记列的值建立对应表0、表1、表2、表3,将每次表A处理后的记录按标识不同转移到相应表中,从而减少表A的记录量。
问题:
方式1与方式2的效率差异?
方式2是否可以理解为直接从后台统计数据?
方式3相比方式2,其对存储空间的占用是否相差特别大?即将记录放在一个表中与放在多个表中,系统占有空间的差异如何?
不知道我这样表述是否清楚。



--  作者:Bin
--  发布时间:2013/9/13 15:38:00
--  
使用动态加载的方式,需要的时候再加载标识列为空的数据即可, 还可以加上分页加载
--  作者:loongtai
--  发布时间:2013/9/13 16:10:00
--  
以下是引用Bin在2013-9-13 15:38:00的发言:
使用动态加载的方式,需要的时候再加载标识列为空的数据即可, 还可以加上分页加载
对你的建议是否可以这样理解:
1.不需建立多个表,所有记录不分标识的直接用datatables("表A")
2.为了提高数据处理效率,对数据处理前先对datatables("表A")的记录进行选择性的加载,生成一个datatables("表A")的table表B,然后对tables("表B") 中的记录进行处理。


--  作者:Bin
--  发布时间:2013/9/13 16:13:00
--  
嗯 可以这么理解.
--  作者:yan2006l
--  发布时间:2013/9/13 19:25:00
--  

只要你没设加载条件,不管你用任何方法,效率都是不变的。

1张表也好,4张表也好,datatable的数据量之和都相等,筛选只是视觉的效果。

另外你说的方式2是什么?和筛选好像一点关系都没有