我们正在运行一个使用MySql和Engine InnoDB的应用程序,我们正在计划修改应用程序(源代码),所以我看着postgres,因为它似乎非常受欢迎并且被全世界许多人建议。但有些事情确实让我搁置了:
何时不使用PostgreSQL
速度:如果您需要的是快速读取操作,则PostgreSQL不是 要去的工具。
简单设置:除非您需要绝对数据完整性,否则ACID 合规性或复杂的设计,PostgreSQL可能是一个过度杀戮 简单的设置。
复制:除非你愿意花时间,精力和精力 资源,使用MySQL实现复制可能更简单 谁缺乏数据库和系统管理经验。
所以,关于速度,我不确定快速读取操作究竟意味着什么。这是指简单的读操作还是复杂的操作?因为我也读过postgres在执行之前优化了查询,所以不确定我是否真的理解了这一点或遗漏了什么?
最后,我不确定,我应该在哪个因素中选择Postgres或Mysql作为应用程序?
注意:我已阅读并尝试了解postgres与mysql之间的差异,但无法做出任何结论,这就是我在此处发帖的原因。另外,我不是DBA。
答案 0 :(得分:1)
PostgreSQL可以使用快速压缩方案动态压缩和解压缩其数据,以便在分配的磁盘空间中容纳更多数据。除了节省磁盘空间之外,压缩数据的优势在于读取数据所需的IO更少,从而可以更快地读取数据。
Mysql:MyISAM表遭受表级锁定,并且不支持ACID功能,如数据持久性,崩溃恢复,事务或外键。以前它声称在只读或重读操作中表现更好,但不一定是这种情况。
另见Benchmarking PostgreSQL vs. MySQL performance
这在很大程度上取决于您的表格结构的维护方式以及组织数据的方式。
Pinterest though using mysql以更快的速度管理了大量数据。
答案 1 :(得分:0)
全部取决于您的申请。如果您正在创建Web应用程序并且可能更复杂,那么您使用的连接的许多表都是实时数据。在这种情况下,您可以更喜欢Postgresql。
PostgreSql功能:ORDBMS,MVCC,它也可以通过Routines从平台本机C库以及Streaming API中访问大型对象,表继承,它是统一的数据库服务器存储引擎,在您使用许多连接的复杂操作中更可靠和快速,锁定以避免竞争条件,具有许多功能,如 - >要文本搜索to_tsvecter()和to_tsquery(),请以json格式获取数据,具有共享缓冲区缓存,索引,触发器,备份,主从复制等等。
如果您的应用程序很小,移动平台,您使用的类似查询类型,此应用程序的用户不多。在这种情况下,您可以选择Mysql。
Mysql功能:RDBMS,使用JDBC ODBC,快速用于类似类型的查询,主 - 主复制。