PostgreSQL vs MySQL用于处理插入/删除大量blob

时间:2011-03-07 17:58:14

标签: mysql postgresql blobs

我有一个应用程序,我很快就会对数据库中存储大量瞬态blob进行重大改写。应用程序将在每天的过程中插入和删除大量blob(每个大小最多5mb)。目前,该应用程序使用的是一个很老的PostgreSQL版本(7.3.x)。使用此版本的PostgreSQL,我们必须定期运行外部真空过程以控制数据库大小,此外,此过程还需要关闭应用程序才能正常运行。

我们正在考虑升级到最新的PostgreSQL或迁移到另一个数据库。具体来说,我们有兴趣转向MySQL。我想知道这里是否有人熟悉这些服务器的最新版本的blob处理支持,并提供任何建议,哪些可能最适合应用程序,将不断插入和删除blob。两台服务器之间的其他功能差异对我们来说不是问题。

我做了一些研究,发现MySQL和PostgreSQL之间有很多功能比较,但没有真正解决这个问题。我希望这里有人可能对一个或两个数据库系统的这方面有一些经验。

由于

1 个答案:

答案 0 :(得分:1)

在真空吸尘器方面,Postgres 7.x确实是一个主要的PITA。 9.0是这个领域的 lot 更好。 autovacuum守护程序可以在每个表级别配置,因为我认为8.3并且对于所描述的场景,您可能会使该表非常激进(或者如果涉及多个表,则表格)。

我认为是否删除包含BLOB(即bytea)列的行并不重要。特别是因为blob无论如何都存储在外面(你可能需要为所谓的TOAST表配置auto-vaccuum守护进程,但我不确定)

问题是您在表中删除/更新了多少行(占总行数的百分比),而不是每个blob的大小。

尽管我喜欢PostgreSQL,但我必须承认整个真空主题(即使每个版本变得更容易和更容易)仍然是它最薄弱的一点(并且是很多麻烦的来源)。

我不能说任何关于MySQL的事情,因为我从未在生产环境中使用过。与你相比,其他功能(除了blob) 非常重要,足以让我远离MySQL - 如果它仅用于许可证。