SQLite vs MySQL vs PostgreSQL:关系型数据库比较 (2)

尽管MySQL依然是一款开源产品,但是自从它被收购之后人们就对其开发进展有很多抱怨。需要注意的是有一些基于MySQL的、完整集成的数据库在标准的MySQL之上附加了其他价值,例如MariaDB。

何时应该使用MySQL

分布式操作

如果SQLite不能满足你的需求,那么将MySQL引入到开发栈中,就像任何其他独立的数据库服务器一样,它能够给你带来大量的操作自由度以及一些先进的功能。

高安全性

MySQL的安全机制通过一种简单的方式为数据的访问和使用提供了可靠的保护。

网站和Web应用

尽管有一些约束,但是绝大部分网站和Web应用都可以简单地运行在MySQL上。相关的灵活可扩展的工具非常易于使用和管理——事实证明这些工具在长期运行时非常有用。

定制解决方案

MySQL有丰富的配置项和运行模式,如果你需要一个高度量身定制的解决方案,那么MySQL能够非常容易地尾随并执行你的规则。

何时不应该使用MySQL

SQL遵从性

因为MySQL并没有打算实现完整的SQL标准,所以它并不完全符合SQL。如果你可能需要与这样的关系型数据库集成,那么从MySQL切换过去可能并不容易。

并发性

尽管MySQL和一些其他的存储引擎能够非常好地执行读操作,但是并发读写可能会有问题。

缺少功能

MySQL缺少某些功能,例如全文本搜索。

PostgreSQL

PostgreSQL是一款先进的、开源的对象关系型数据库管理系统,它的主要目标是遵从标准和可扩展。PostgreSQL,或者说Postgres,试图将ANSI/ISO SQL标准及其修正结合起来。

与其他关系型数据库相比,PostgreSQL独特的地方是它支持高度需要的、完整的面向对象以及关系型数据库的功能,例如完全支持可靠性事务。

由于其强大的底层技术,PostgreSQL能够非常高效地处理很多任务。得益于多版本并发控制(MVCC),它能够在没有读锁的情况下实现并发并保证ACID。

PostgreSQL是高度可编程的,因此扩展性非常好,它支持称为“存储过程”的自定义程序。用户可以创建这种函数简化重复的、复杂的以及经常需要的数据库操作的执行。

尽管该数据库非常强大,但是它却没有像MySQL那么流行,即便如此依然有很多优秀的第三方工具和类库可以让我们更容易地使用它。

PostgreSQL支持的数据类型

PostgreSQL支持的数据类型包括:bigint、bigserial、bit [(n)]、bit varying [(n)]、boolean、box、bytea、character varying [(n)]、character [(n)]、cidr、circle、date、double precision、inet、integer、interval [fields] [(p)]、line、lseg、macaddr、money、numeric [(p,s)]、path、point、polygon、real、smallint、serial、text、time、timestamp、tsquery、tsvector、txid_snapshot、uuid、xml

PostgreSQL的优点

开源且遵从SQL标准

PostgreSQL是一款开源的、免费的、功能非常强大的关系型数据库。

强大的社区

由一个忠实的、经验丰富的社区支持,用户可以通过知识库和Q&A网站获得全天候的免费服务。

强有力的第三方支持

除了非常先进的特性之外,PostgreSQL还有很多优秀的、开源的第三方工具可以辅助系统的设计、管理和使用。

可扩展

可以通过存储过程扩展PostgreSQL的功能。

面向对象

PostgreSQL不仅是一个关系型数据库,它还是一个面向对象的数据库——支持嵌套等功能。

PostgreSQL的缺点

性能:

对于简单繁重的读取操作,使用PostgreSQL可能有点小题大做,同时性能也比MySQL这样的同类产品要差。

流行程度

尽管有大量的部署,但是鉴于该数据库的性质,它的受欢迎程序并不高。

托管

由于上面提到的几点,很难找到提供托管PostgreSQL实例的主机或者服务提供商。

何时应该使用PostgreSQL

数据完整性

当绝对需要可靠性和数据完整性的时候,PostgreSQL是更好的选择。

复杂的定制程序

如果需要数据库执行定制程序,那么可扩展的PostgreSQL是更好的选择。

集成:

如果将来可能需要将整个数据库迁移到其他合适的解决方案上(例如Oracle),那么PostgreSQL可能兼容性最好也更容易切换。

复杂的设计

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwyzfp.html