CLOB和BLOB其实在RMDBS中最终都是以二进制流进行存储的。最大的差别在于,CLOB有字符集的概念,在从存储和读出的过程中由RMDBS做字符集解析。没有绝对的优劣,只有适合的环境。
Case1:没有字符集概念的内容(例如:图片流,媒体流)这些object没有字符集概念,解析只能由app程序完成。因此,用BLOB方式要比CLOB省去了字符集解析的过程,处理速度提升。当然,这种类型的数据最好还是不要放在数据库中存储。无论是效率还是成本都没有用文件系统存来得好。
Case2:大文本内容(例如:论坛帖子,爬虫输出的html源码等)这些object用CLOB存储的优势是显然的:通过数据库客户端程序可直接阅读,备份文件明文适合数据处理。当然,也不是绝对的。
某些情况下,为了存储效率考虑,会直接在APP中做字符集解析并进行压缩(zlib等)。
一般压缩的输出流都是binary形式的,这个时候就会选择BLOB。