以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]当数据量较大时,哪种表结构更好? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40979) |
-- 作者:loongtai -- 发布时间:2013/10/8 15:43:00 -- [求助]当数据量较大时,哪种表结构更好? 准备设计一个物料参数表,由于不同的物料其表征参数的数量不一样,有的只要3个、4个,有的可能需要10个。有两种设计方法: 设计1: 设计2: 设计2列数少且参数可动态增加,但是每个物料占用的行数成倍增加。 如果数据少,我想这些都不是问题。但是如果按设计1的方法数据有上万行甚至几十万行时,此时从占用容量、数据查找速度方面来看哪种设计方法会更好些?
|
-- 作者:Bin -- 发布时间:2013/10/8 16:00:00 -- 很明显 设计2 更加科学,更加符合数据库的表设计. |
-- 作者:loongtai -- 发布时间:2013/10/8 16:07:00 -- 我问了一个同事,他告诉我如果按照2的设计,其查找速度相比1会慢很多。假如按设计1有10W行数据,转化成设计2有80W行数据,当查找某个物料参数时2的查找工作量是1的8倍。不知他的这种说法对不对?当数据行特别多的时候,2的这种设计对查询速度影响大不大? |
-- 作者:qq121454970 -- 发布时间:2013/10/8 16:09:00 -- 查询速度很快的,明显第二个合理 |
-- 作者:jspta -- 发布时间: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 -- 发布时间: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 -- 发布时间:2013/10/8 17:14:00 -- 以下是引用lsy在2013-10-8 16:40:00的发言:
多值字段。 不是指多值字段,有个很专业的名称,以前见到过的,暂时百度搜不到。 |
-- 作者:程兴刚 -- 发布时间:2013/10/8 18:37:00 -- 在一列的行里面查询,显然比多列里面查找行快多了! |
-- 作者:有点甜 -- 发布时间:2013/10/8 19:16:00 -- 如果确定列的个数的话,就用第一种方法吧。10个也不算多,几十上百个列的项目也很多。 |
-- 作者:反思 -- 发布时间:2013/10/8 22:27:00 -- 我也觉得如果参数是固定的,或者预留1~2作为备用列 在后面的统计中采用设计一会简单一些。 如果物料不多,个人觉得采用设计一比较方便。 |