Foxtable(狐表)用户栏目专家坐堂 → [求助]当数据量较大时,哪种表结构更好?


  共有4851人关注过本帖树形打印复制链接

主题:[求助]当数据量较大时,哪种表结构更好?

帅哥哟,离线,有人找我吗?
loongtai
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
[求助]当数据量较大时,哪种表结构更好?  发帖心情 Post By:2013/10/8 15:43:00 [只看该作者]

准备设计一个物料参数表,由于不同的物料其表征参数的数量不一样,有的只要3个、4个,有的可能需要10个。有两种设计方法:
设计1:

图片点击可在新窗口打开查看此主题相关图片如下:截图00.png
图片点击可在新窗口打开查看
设计2:

图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看
设计1的好处在于每个物料只占一行,缺点是列数固定,不可添加。
设计2列数少且参数可动态增加,但是每个物料占用的行数成倍增加。
如果数据少,我想这些都不是问题。但是如果按设计1的方法数据有上万行甚至几十万行时,此时从占用容量、数据查找速度方面来看哪种设计方法会更好些?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/10/8 16:00:00 [只看该作者]

很明显 设计2 更加科学,更加符合数据库的表设计.  

 回到顶部
帅哥哟,离线,有人找我吗?
loongtai
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2013/10/8 16:07:00 [只看该作者]

我问了一个同事,他告诉我如果按照2的设计,其查找速度相比1会慢很多。假如按设计1有10W行数据,转化成设计2有80W行数据,当查找某个物料参数时2的查找工作量是1的8倍。不知他的这种说法对不对?当数据行特别多的时候,2的这种设计对查询速度影响大不大?

 回到顶部
帅哥哟,离线,有人找我吗?
qq121454970
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:880 积分:9005 威望:0 精华:3 注册:2012/4/22 18:06:00
  发帖心情 Post By:2013/10/8 16:09:00 [只看该作者]

查询速度很快的,明显第二个合理


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/10/8 16:29:00 [只看该作者]

以下是引用loongtai在2013-10-8 16:07:00的发言:
我问了一个同事,他告诉我如果按照2的设计,其查找速度相比1会慢很多。假如按设计1有10W行数据,转化成设计2有80W行数据,当查找某个物料参数时2的查找工作量是1的8倍。不知他的这种说法对不对?当数据行特别多的时候,2的这种设计对查询速度影响大不大?

那要看你什么数据库了,如果是ACCESS的效率可能下降很多。

实际上第一张表占用的大小并不比第二张表大多少。从数据库角度来说,第二张表扩展性更好

 

实时上,还有另一种设计方法(也很流行,忘记叫什么了),如参数1:a,参数2:b,参数3:c

设计成

名称   参数

A      a|b|C

 

这种设计占用小效率高,你可以试试


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/8 16:40:00 [只看该作者]

以下是引用jspta在2013-10-8 16:29:00的发言:

那要看你什么数据库了,如果是ACCESS的效率可能下降很多。

实际上第一张表占用的大小并不比第二张表大多少。从数据库角度来说,第二张表扩展性更好

 

实时上,还有另一种设计方法(也很流行,忘记叫什么了),如参数1:a,参数2:b,参数3:c

设计成

名称   参数

A      a|b|C

 

这种设计占用小效率高,你可以试试

多值字段。


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/10/8 17:14:00 [只看该作者]

以下是引用lsy在2013-10-8 16:40:00的发言:

多值字段。

不是指多值字段,有个很专业的名称,以前见到过的,暂时百度搜不到。


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/8 18:37:00 [只看该作者]

在一列的行里面查询,显然比多列里面查找行快多了!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/8 19:16:00 [只看该作者]

 如果确定列的个数的话,就用第一种方法吧。10个也不算多,几十上百个列的项目也很多。

 回到顶部
帅哥哟,离线,有人找我吗?
反思
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:22 积分:196 威望:0 精华:0 注册:2013/10/7 13:14:00
  发帖心情 Post By:2013/10/8 22:27:00 [只看该作者]

我也觉得如果参数是固定的,或者预留1~2作为备用列
在后面的统计中采用设计一会简单一些。
如果物料不多,个人觉得采用设计一比较方便。


 回到顶部
总数 11 1 2 下一页