表设计可以再优化
数据库用oracle
文件分的太细,记录太多。
每次读取一个1M的流,需要操作多少次数据库?(数据库内部)

解决方案 »

  1.   

    我数据库用的SQL Server 7.0
    我也想过将每个块划得大一点儿
    不过这样要想定位一个相对准确的时间点就比较困难了当然我还想到一个方法
    那就是将视频流存储在多个文件中
    而在数据库中只存储某时间点的视频数据所对应的文件号和偏移量
    不过这样就必须构造一个比较高效的文件管理系统
    够麻烦的大家帮忙想想
    还有什么简单一点的办法
      

  2.   

    哪可Sorry了,我连h.263的标准都没听说过:(
      

  3.   

    还有一种方法,你可以不必再数据库中存放大对象,而是在数据库插入该视频文件的记录ID,这个是自增长的唯一ID,用这个ID作为某种规则为文件命名,然后文件被保存在指定的目录下,这样,无论访问还是查询都很快。我们使用的一套邮件系统的附件处理就是这样,当然,邮件服务器和数据库服务器是在一个局域网中,而且能相互访问。
      

  4.   

    建议你使用oracle的外部大对象.数据库中保存文件的索引,
    而不要将数据作为一个字段,写到数据库中去。另外,可以
    使用oracle的分区存储策略,加快检索速度。同时,可以将
    时间作为索引来加快检索速度。