以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]当一个表的数据量较大时,哪种处理方式比较好 (http://foxtable.net/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是什么?和筛选好像一点关系都没有 |