日期:2014-05-16  浏览次数:20896 次

blob字段设计
根据项目的需求,数据库将会存储一些多媒体(较大)信息。
 当在设计表的时候有个疑惑 比如:
方案一: table1: id name media
方案二: table1: id name mid 和table2:mid media

问题1:对方案一、二 执行 select id,name from table1 时 两个方案性能有什么差异?
问题2: 对方案一、二 分别执行 select id,name,media from table1、select id,name,media from tabel1 join table2 on tabel1.mid=table2.mid 时两个方案性能又会有什么差异?
问题3:这两个方案各自优缺点是什么?

PS:可以考虑如果在oracle单机、集群或oracle与sql server不平台 之类的进行扩展。 其中table1中的id,name查询频繁列


希望各位大虾给于解答
  


------解决方案--------------------
这个是老话题了,
从业务设计的角度来看,拆分开,不符合第三范式,但是容易扩展,造成业务复杂度变高

从数据库存储的角度
但是如果MEDIA很多重复的话,拆分开,会减少存储的数据量,同时索引的存储量也会增加,当然同时会增加查询时候的表连接的开销


------解决方案--------------------
探讨
这个是老话题了,
从业务设计的角度来看,拆分开,不符合第三范式,但是容易扩展,造成业务复杂度变高

从数据库存储的角度
但是如果MEDIA很多重复的话,拆分开,会减少存储的数据量,同时索引的存储量也会增加,当然同时会增加查询时候的表连接的开销