`
weitao1026
  • 浏览: 1048610 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL与PostgreSQL比较 哪个数据库更好

阅读更多
一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。
二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。
三、PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下mysql就差很多,instagram就是因为PG的空间数据库扩展POSTGIS远远强于MYSQL的my spatial而采用PGSQL的。

四、PG 的“无锁定”特性非常突出,甚至包括 vacuum 这样的整理数据空间的操作,这个和PGSQL的MVCC实现有关系。
五、PG 的可以使用函数和条件索引,这使得PG数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。
六、PG有极其强悍的 SQL 编程能力(9.x 图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,比如分析函数(ORACLE的叫法,PG里叫window函数),还可以用多种语言来写存储过程,对于R的支持也很好。这一点上MYSQL就差的很远,很多分析功能都不支持,腾讯内部数据存储主要是MYSQL,但是数据分析主要是HADOOP+PGSQL(听李元佳说过,但是没有验证过)。
七、PG 的有多种集群架构可以选择,plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。
八、一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而 PG 的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。用PG的话,文档数据库都可以省了。
九,对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。
十,pgsql对于numa架构的支持比mysql强一些,比MYSQL对于读的性能更好一些,pgsql提交可以完全异步,而mysql的内存表不够实用(因为表锁的原因)
分享到:
评论

相关推荐

    MySQL与PostgreSQL数据库高可用分析实践.pdf

    MySQL与PostgreSQL数据库高可用分析实践 ...本文档详细介绍了MySQL和PostgreSQL数据库高可用的分析实践,涵盖了高可用原理、MySQL高可用和PostgreSQL高可用等方面的知识点,旨在帮助读者更好地理解和实现数据库高可用。

    C#插件用于MySQL and PostgreSQL数据库驱动

    然而,随着时间的发展,ByteFX.Data已被更现代和专门针对特定数据库的驱动(如MySQL Connector/Net和Npgsql)所取代,因为它们提供了更好的性能和功能。 在实际项目中,我们可能需要实现插件式架构,以便灵活地切换...

    SQLite、MySQL、PostgreSQL关系型数据库管理系统比较.pdf

    本文将针对目前最常用且流行的三种开源关系型数据库管理系统——SQLite、MySQL和PostgreSQL进行比较分析,以帮助开发人员更好地做出选择。 SQLite是一个非常强大的嵌入式RDBMS。它的设计目标是易于使用且轻便,整个...

    nacos2.1.0版,jar包,支持postgresql和mysql两种数据库

    例如,`nacos-postgresql.sql`用于在PostgreSQL数据库中创建Nacos所需的全部表,而`nacos-mysql.sql`则是为MySQL数据库准备的。执行这些脚本可以确保Nacos能够正确地存储和读取服务注册信息、配置数据等。 在使用...

    MySQL和PostgreSQL两数据库的对决

    5. 动态扩展性:PostgreSQL 由于其开放源码的特性,通常具有更好的扩展性和定制性。 总的来说,MySQL 适合需要高性能、简单部署和较低维护成本的场景,尤其在Web应用中表现突出。而 PostgreSQL 则更适合需要复杂...

    关于MySQL 和 PostgreSQL数据库在医疗领域中应用的比较.pdf

    以下是在医疗领域中MySQL和PostgreSQL数据库应用的详细比较。 首先,目前MySQL 5.7和PostgreSQL 9.6都原生支持JSON数据类型。JSON数据类型在医疗领域变得尤为重要,因为它能够更好地处理病历中的半结构化数据。尽管...

    将你的网站从MySQL改为PostgreSQL

    3. 创建PostgreSQL数据库:在新主机上创建对应的PostgreSQL数据库。 4. 导入数据:将转换后的SQL文件上传到PostgreSQL服务器并执行,将数据导入到新数据库中。 PostgreSQL的优势: 1. 标准SQL支持:PostgreSQL更加...

    mysql mysql与其它数据库的对比

    MySQL与其他关系型数据库管理系统(RDBMS)对比,如Oracle、SQL Server、PostgreSQL等。在多个方面存在差异,如开源性、性能、可扩展性、安全性、支持、多租户、数据库管理等。 与 Oracle 对比: 1. 开源性:...

    PostgreSQL与MySql比较

    ### PostgreSQL与MySQL比较 #### 一、MySQL与PostgreSQL对比概览 PostgreSQL与MySQL作为两种最流行的开源关系型数据库管理系统,在技术特性、应用场景及社区支持方面存在诸多不同。本篇将从多个角度深入探讨这两种...

    82分tencent的Mysql云数据库产品认证答案

    本资源摘要信息涵盖了腾讯云 MySQL 云数据库产品认证的所有知识点,旨在帮助用户更好地理解和掌握腾讯云 MySQL 云数据库产品。用户可以通过本资源摘要信息了解腾讯云 MySQL 云数据库产品的所有方面,包括云数据库 ...

    MySQL和PostgreSQL的Java异步数据库驱动程序用Kotlin编写

    因此,出现了异步数据库驱动程序,如Kotlin编写的jasync-sql,它为MySQL和PostgreSQL提供了非阻塞的访问方式。 `jasync-sql` 是一个高效且易于使用的库,它利用了Kotlin的现代特性和异步编程模型,以提升数据库操作...

    MySQL 和 PostgreSQL 协议解析和对比.pdf

    MySQL 和 PostgreSQL 协议解析和对比 MySQL 和 PostgreSQL 是两种非常...MySQL 和 PostgreSQL 的协议层实现是完全不同的,了解它们的通信协议是非常重要的,这将有助于我们更好地使用数据库和实现更好的数据库系统。

    Thingsboard修改为Mysql数据

    在本文中,我们将深入探讨如何将Thingsboard的默认数据库从PostgreSQL更换为MySQL,以便更好地适应你的IT环境。 首先,你需要确保你的服务器上已经安装了MySQL服务,并且版本兼容Thingsboard的要求。通常,MySQL ...

    dbeaver数据库连接工具,mysql、postgreSQL、clickhouse等可用且好用

    - **数据可视化**:支持图表和报表的生成,帮助用户更好地理解数据。 - **版本控制**:集成Git,方便数据库版本管理和协作。 - **扩展性**:允许安装各种插件,增加对新数据库类型的支持或增强现有功能。 2. **...

    MySQL数据迁移到postgresql必备手册.pdf

    - **步骤2:配置源与目标** 在“常规”选项卡中,你需要指定要迁移的数据库对象,如表、视图、存储过程等,并填写目标PostgreSQL数据库的连接信息,包括服务器地址、端口、数据库名、用户名和密码。 - **步骤3:...

    Mysql5.5与Postgresql9.1负载均衡比较.pdf

    从MySQL 5.5版本开始,默认使用InnoDB存储引擎,它是一个支持事务处理的存储引擎,能够更好地处理并发和数据完整性。 在MySQL中,复制机制是负载均衡的基础。复制涉及一个主服务器(Master)和多个从服务器(Slave...

    java连接数据库(Oracle8、Sql Server、DB2、Informix、Sybase、MySQL、PostgreSQL)

    ### Java连接多种数据库详解 在Java开发中,与各种类型的数据库进行有效且稳定的连接是...了解这些基础连接方式有助于开发者更好地实现应用程序中的数据访问逻辑。在实际应用中,还需要考虑异常处理、性能优化等问题。

    mysql postgresql Greenplum 实时同步

    为了更好地理解Bireme的使用场景,以下是一些示例配置步骤。 ##### 5.1 MySQL数据源配置 1. **创建数据库**:`createdatabase syncdb1;` 2. **创建表**:切换到`syncdb1`数据库,并执行`createtable tb1(aint, b ...

Global site tag (gtag.js) - Google Analytics