目前,MySQL社区版服务器5.5.16属于GPL。这意味着它也可以用在开源项目的项目中。我们的项目预算非常紧张,我们需要找到一个在商业项目中使用MySQL免费版的解决方案。我有几个问题:
1)早期的MySQL版本能够在商业项目中使用哪些版本且无错误?
2)关于在GPL中使用当前的MySQL社区版服务器5.5.16:如果项目软件架构的设计支持插入许多DBMS,那么在非GPL许可下使用项目软件是否合法?我的意思是,假设该软件设计有多个DBMS支持,并且该软件已获得商业许可。如果客户选择使用MySQL GPL版本,他是否违反了GPL许可?
3)我听到一些关于PostgreSQL的错误回复是错误的,并且未经过优化,无法修改和存储大量数据。它仍然在一些小型商业项目中使用的唯一原因是因为它是免费的。你对此有何看法?
更新:此外,我们计划使用多台服务器,因此还需要主从复制。
UPDATE2:我听说过一个案例:使用了〜1GB PostgreSQL DB。通过修改几乎所有数据,数据库被大量使用。问题是数据库每2.5个月不断增长十次。他们使用了PostgreSQL 8.3 + CentOS。此外,还使用了AUTOVACUUM。在转储数据库之后,销毁旧数据库,重新创建数据库并导入它们可以将其大小减小~10倍。现有帖子(here和here)表明,即使在最新的PostgreSQL 9版本中,此问题也是相对的。我不会称之为正常行为,在我们的案例中这种规模增长是不可接受的。
更新3:谢谢大家的答案。所有答案都是相对而有用的。
答案 0 :(得分:2)
3)我听到很多关于PostgreSQL的错误回复是错误的,并且没有针对修改和存储大量数据进行优化。它仍然在一些小型商业项目中使用的唯一原因是因为它是免费的。你对此有何看法?
这是FUD。 PostgreSQL是一个功能齐全,高性能的RDBMS,用于几个大规模部署。
答案 1 :(得分:2)
2)关于在GPL中使用当前的MySQL社区版服务器5.5.16:如果项目软件架构的设计支持插入许多DBMS,那么在非GPL许可下使用项目软件是否合法?我的意思是,假设该软件设计有多个DBMS支持,并且该软件已获得商业许可。如果客户选择使用MySQL GPL版本,他是否违反了GPL许可?
只要您与GPL许可的库链接,整个代码就会根据GPL许可。 Oracle仅为其他免费许可证提供exception。
答案 2 :(得分:2)
3)我听到很多关于PostgreSQL错误的负面回复 非优化用于修改和存储大量数据。唯一的 之所以仍然在一些小型商业项目中使用是因为 免费。你对此有何看法?
ROFL
你一定是在开玩笑!纯粹的FUD,没有别的。
我们在PostgreSQL数据库中有几个TB数据,它仍然每月增长约200GB。没有错误,没有问题,只有很好的性能。此外,在500个并发用户,没有任何问题。检查邮件列表以计算错误并查看这些错误的解决速度。在几个小时内修复时不要感到惊讶。 MySQL可以从中学习。
答案 3 :(得分:1)
我遇到了同样的问题。早些时候我在商业项目中使用了mysql。但在oracle接管并许可政策更改后,我寻找其他选项,包括SQL-Express,DB2-Express,SQL-lite,PostgreSql
我不会进行比较,因为周围有很多信息。但PostgreSql是迄今为止最好的
a)处理大型数据集
b)SQL标准
c)内联文档
d)数据库使用统计
事实上,我可以在一夜之间启动一个项目,而不会对SQL命令或文档的更改产生任何开销。但是,由于我在Windows上使用dotnet,Npgsql是唯一让我们害怕的可靠连接器。
但到目前为止,使用PostgreSql 9.0进行开发绝对是一块蛋糕。
答案 4 :(得分:1)
其他海报已经提到,基本上链接到mysql意味着您已经许可项目GPL或其他一些操作系统许可证Oracle / MySQL作为例外,或者它是商业的,你欠他们的钱。总之...
好的,PostgreSQL将其数据存储在支持MVCC,多版本并发控制的数据存储中。这意味着在一个简单的层面上,每个事务都会获得数据库的快照,该事务从该事务开始到提交或回滚时是一致的。这意味着在任何给定时间,单个元组可以在数据库中具有多个实时版本。由于MVCC在pgsql中的实现方式,这两个版本同时存在于数据存储中。最终除了最新的事务之外的所有事务都将比最早运行的事务更旧,并且可以由db恢复和重用。回收这些旧死元组的过程称为吸尘。
在8.3中,使用称为自由空间映射的共享内存段跟踪旧的死区。如果真空吸尘器不够具有足够的侵蚀性,或者如果空闲空间映射中的空间不足,那么数据库可能会使死元组的速度快于恢复它们(真空)或记住它们(自由空间映射)。
使用8.4,可用空间映射对用户免维护,因为它存储在.fsm文件中的硬盘驱动器上。然而,真空问题仍然存在。 autovacuum被调整为不太激进,以免在安装时杀死笔记本电脑或小型服务器。在具有大量IO功能的大型计算机上,例如在RAID-10阵列中具有16个SSD的服务器,您可以提高autovacuum的积极性,并且可以跟上一些非常疯狂的tps速率。在具有足够激进的自动真空和具有大量磁盘的快速硬件RAID控制器的服务器上,您可以在长时间内每秒持续1,000到3,000笔交易。使用更昂贵和更大的服务器可以实现接近10,000的TPS数量。同时为100个连接提供服务。
tl; dr:8.3已经过时了,def有一些问题。 8.4及以上版本具有更好的可用空间恢复能力,但仍然需要积极的autovac来承受高负荷。