我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:神州彩票 > 二进制大对象 >

数据库中存储二进制文件的查询效率问题

归档日期:04-23       文本归类:二进制大对象      文章编辑:爱尚语录

  一般数据库中都有支持二进制文件类型,比如Oracle中BLOB字段。这种数据通常都很大。现在完全不考虑在数据库中存URL的那种方式。如果把这个字段放在一张表中,而这张表中亦有其他字段。...

  一般数据库中都有支持二进制文件类型,比如Oracle中BLOB字段。这种数据通常都很大。现在完全不考虑在数据库中存URL的那种方式。如果把这个字段放在一张表中,而这张表中亦有其他字段。这样在查询数据库的的时候会出现效率问题,所以有人提议把这个字段分出去另建一张表,和这张表有相同的关键字,这样在不需要直接查询这个字段时候,可以避开该字段,从而提高查询效率。我想如果不把那个字段分出去,如果直接使用select * from table1的方式固然会慢,因为把那个字段也作为了查询目标。试想如果select 字段1,字段2,字段3 from table1,没有把那个字段作为查询目标,查询效率也会很慢吗?希望专业一点的人来回答这个问题,不要凭感觉说,因为这设计到数据库内部的存储方式(如果每个字段用指针来访问,应该没有效率问题),非常感谢!

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  你所谓的二进制数据文件针对的应该是大对象,一般而言,不会使用到这种存储方式。不过说查询效率,在对大对象进行查询时,像ORACLE,就是给数据文件增加了一个头,用以查询时的定位。而对于大数据的文本文件,比如CLOB,它提供了其他的方式让你来进行数据查询。而你所说的存在其他的字段,那么,如果你存储的是文本文件而非音频视频的话,建议你采用CLOB而非BLOB……另外,就查询效率而言,没有什么固定的方式是最好的,只有针对你的应用,采用最合适的数据库架构才是最优的。在查询效率这点上,建议你看看数据库的簇集,索引,分区/多文件组(oracle是分区,sql server就是多文件组了),这些如果使用恰当的话,可以提高查询效率……

本文链接:http://runhappyplace.com/erjinzhidaduixiang/76.html