Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Database postgresql是否使用bytea blob或文件位置存储序列化对象?_Database_Postgresql_Blob - Fatal编程技术网

Database postgresql是否使用bytea blob或文件位置存储序列化对象?

Database postgresql是否使用bytea blob或文件位置存储序列化对象?,database,postgresql,blob,Database,Postgresql,Blob,我想在某个地方存储一个序列化对象,环顾四周后,我意识到有几种方法可以做到这一点 我正在考虑将文件存储在文件系统中的某个位置,并将文件位置存储为表中的条目 假设文件大小约为100-500Kb,这是一种合适的方式吗?还是使用bytea或blob作为更好的解决方案?小型对象(500Kb)与bytea一样适用。对大小的主要限制是,您需要先在服务器上,然后在客户机上具体化内存中的整个字段(有一些方法可以运行它,但它们是有限的)。对于半兆字节,这不应该是一个问题,但如果您开始存储更大的对象,可能需要一些考虑

我想在某个地方存储一个序列化对象,环顾四周后,我意识到有几种方法可以做到这一点

我正在考虑将文件存储在文件系统中的某个位置,并将文件位置存储为表中的条目

假设文件大小约为100-500Kb,这是一种合适的方式吗?还是使用bytea或blob作为更好的解决方案?

小型对象(500Kb)与bytea一样适用。对大小的主要限制是,您需要先在服务器上,然后在客户机上具体化内存中的整个字段(有一些方法可以运行它,但它们是有限的)。对于半兆字节,这不应该是一个问题,但如果您开始存储更大的对象,可能需要一些考虑

将其存储在文件系统中并存储位置(或存储由串行序列中的代理主键命名的位置)是处理较大文件的好方法,当然,您也可以在这里应用它。缺点是您失去了事务完整性(您无法确保文件系统和数据库都已更新,因此需要实现某种验证工具来定期运行以比较它们),更重要的是,您可能无法获得一致的备份(如果备份的是文件而不是db记录呢?或者反过来说)当然,也有一些方法可以处理这个问题,但它很快就会变得比将数据存储在表中复杂得多