Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪种数据库和编码方案适合音频数据存储?_Java_Database_Audio - Fatal编程技术网

Java 哪种数据库和编码方案适合音频数据存储?

Java 哪种数据库和编码方案适合音频数据存储?,java,database,audio,Java,Database,Audio,我有存储文本数据的关系数据库系统以及为它们构建应用程序的经验。我听说关系数据库并不适用于音频(多媒体)数据库,还需要一些编码方案。因此,这方面的任何指导都将非常有用。 我想对音频进行流式传输,将其分块,并计划使用ogg vorbis编解码器进行同样的处理。对于流式音频数据,我认为不能将文件存储在服务器上,而仅仅在数据库中提供指向它们的路径。如果我这样做的话:音频文件很大,因此如果不压缩它们,通过频道发送它们对于正常的互联网连接是不起作用的,上传它们也不起作用。它可以起作用(请参见BLOB),但您

我有存储文本数据的关系数据库系统以及为它们构建应用程序的经验。我听说关系数据库并不适用于音频(多媒体)数据库,还需要一些编码方案。因此,这方面的任何指导都将非常有用。 我想对音频进行流式传输,将其分块,并计划使用ogg vorbis编解码器进行同样的处理。对于流式音频数据,我认为不能将文件存储在服务器上,而仅仅在数据库中提供指向它们的路径。如果我这样做的话:音频文件很大,因此如果不压缩它们,通过频道发送它们对于正常的互联网连接是不起作用的,上传它们也不起作用。

它可以起作用(请参见BLOB),但您也可以将文件用于实际数据,只需存储指向文件的varchar


应该避免编码,因为这会为每次使用增加额外的解码步骤。

当您听说关系数据库不能真正用于音频(多媒体)时,这可能意味着将大量二进制数据直接存储在数据库中会导致性能差和维护困难。例如,如果RDB中有TB的数据,则很难进行备份、移动和扩展


<>你可以在RDB中存储BLUB数据,但我建议你只考虑指向该文件的DB文件存储。您可以使用S3(具有良好的缓存服务器)或本地文件系统。

关于音频剪辑的各种元信息都可以存储在数据库中,这很有意义,因为您可以合理地查询它

音频剪辑本身通常很大(几个兆),通常您无法对其进行索引。因此,将它们直接存储在数据库中是没有意义的,如果您这样做,就会减慢速度。将音频数据直接放在数据库中的唯一好处是事务/锁定,这在大多数情况下是不太可能的优势

有些数据库(特别是Oracle)可以“脱机”存储blob,即不存储在表空间中,而是作为文件存储在其他媒体上。这有助于提高性能。但是,如果您将音频数据存储为blob,则只能通过数据库接口访问它们

如果单独存储音频,在DB中只需存储文件名即可。您可以使用不同的机制提供音频数据,更适合音频,也更适合客户端(例如http)。缺点是您对它们的控制能力较差:链接可能会意外断开,并且您没有删除或回滚文件的事务。(通常运行定期垃圾收集过程,删除未引用的文件。)


除非您更详细地描述您的应用程序,否则很难给出更具体的建议。

音频是原始二进制数据;大多数数据库都提供一种“blob”数据类型来存储这类数据。这就是你的意思吗?为什么你需要把音频输入数据库?我不知道你想知道什么或做什么。您想简单地存储音频(如.wav的内容)?您想存储更多信息还是只存储内容?你想检索信息还是音频?您将对音频进行流式传输,并将其分块获取?使用其他类型的数据库(如Cassandra或hdoop的Hbase)如何?