1.mysql支持多种存储引擎,存储引擎选择较为灵活,实际上一般都在用innodb。ddl放在server端,ddl语句的事物性支持较差,可能出现server级数据库丢失。pg的server稳定性更好

2 mysql数据存储结构为聚簇索引,通过主键查询效率较高,但是有很多局限性,比如插入只能顺序插入。不太适合超大数据非主键查询,访问二级索引需要回表。pg采用堆表存储数据,能够支持更大的数据量

3 pg不支持分区表,通过继承表的形式达到分区表的目的,在分区较多成千上万时,pg的继承表效率较差

4 mysql有间隙锁, postgresql数据库执行delete操作后,表中的记录只是被标示为删除状态,并没有释放空间,在以后的update或insert操作中该部分的空间是不能够被重用,VACUUM作用是删除那些已经标示为删除的数据并释放空间,vacuum需要定期运行,比较消耗IO

5 pg支持的数据类型(如gis),分析函数支持更多,还支持面向对象数据库。有更多的第三方开源工具辅助系统设计和实现

6pg支持存储过程和执行计划缓存,表连接和复杂查询能力更强。mysql优化器,运算符都较简单,适合简单的查询操作

7 pg主从采用wal日志物理同步,mysql使用binlog逻辑同步。物理同步可靠性更高,复制性能更高。

8 mysql仅支持嵌套循环表连接(8.0支持hash连接),pg支持nl,hash,merge join

9 mysql适用应用逻辑简单,轻数据存储和计算的场景,pg适合复杂的数据分析和特殊应用场景

最近学习pg,发现pg不比mysql差,大家都是开源的关系型数据库,但是明显mysql的流行程度比pg更高。

其中有很多历史原因,mysql从4.x开始就已经有市场了,pg的前几个版本使用率不高,最近pg口碑比较好,但是mysql已经占据了很大部分开源关系型数据库市场。最近的pg版本功能很完善,也很复杂,大部分轻量应用只想要一个免费的,可存储数据的,简单的关系型数据库,大部分数据计算和分析功能不会放在OLTP数据库层面上。

pg的数据类型,优化器做的比mysql更好,它也更适合OLAP场景。比如阿里的ADB就是pg搞的,用于alanyze。华为的guass-A就是基于pg开发的,也是用于分析场景。所有pg不流行是不对的,pg还是很流行的,至少国产数据库或云数据库很关注pg

无论之前的发展如何,所有从目前市场现状来看,mysql与pg甚至互不争锋,他们一个服务于OLTP,一个应用在OLAP。

参考:

https://www.jianshu.com/p/c3911e3e830a

https://www.cnblogs.com/sbj-dawn/p/8053549.html

PG与mysql的区别相关推荐

  1. MySQL数据库:pg和mysql语法区别

    ClickHouse 是什么? ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 我们首先理清一些基础概念 OLTP:是传统的关系型数据库,主要操作增删改查,强调事 ...

  2. pg 主键系统信息_神仙打架:PG 和 MySQL 到底哪个更好用?

    以下文章来源于 DBAplus社群概述 本文介绍MySQL和PostgreSQL的一些特性对比,让大家了解二者的优劣,更好的做出选择.当前国内的现状,互联网公司使用MySQL的较多,PostgreSQ ...

  3. 秒懂Mycat和MySQL的区别【转自百度知道】

    2019独角兽企业重金招聘Python工程师标准>>> Mycat和MySQL的区别: 可以把上层看作是对下层的抽象,例如操作系统是对各类计算机硬件的抽象.那么我们什么时候需要抽象? ...

  4. 神仙打架:PG 和 MySQL 到底哪个更好用?

    概述 本文介绍MySQL和PostgreSQL的一些特性对比,让大家了解二者的优劣,更好的做出选择.当前国内的现状,互联网公司使用MySQL的较多,PostgreSQL的使用比例反而不高,但相信看到P ...

  5. 淘宝 oracle mysql_Oracle 与 MySQL 的区别-阿里云开发者社区

    Oracle 与 MySQL 的区别 1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases.对于我的理 ...

  6. oracle数据库跟mysql的区别_关于Oracle数据库与MySQL数据库的几点区别

    Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的区别: 1.在Oracle中用select * ...

  7. Oracle 与 MySQL 的区别

    为什么80%的码农都做不了架构师?>>>    Oracle 与 MySQL 的区别 1.在 ORACLE中用select * from all_users显示所有的用户,而在MYS ...

  8. sql和mysql的区别

    什么是SQL? SQL是一种用于操作数据库的语言.SQL是用于所有数据库的基本语言.不同数据库之间存在较小的语法更改,但基本的SQL语法基本保持不变.SQL是S tructured Q uery La ...

  9. SQL Server 和 Oracle 以及 MySQL 的区别

    SQL Server 和 Oracle 以及 MySQL 的区别 历史说明区别 > Oracle: 中文译作甲骨文,成立于1977年,早期的理论基础,反而来自于一篇IBM的论文<A Rel ...

最新文章

  1. 软件接口数据一致性机制
  2. PHP array_key_exists() 函数(判断某个数组中是否存在指定的 key)
  3. 输入矩阵包含 nan 或 inf_荣耀 V30 PRO 采用超感光电影相机矩阵
  4. 世界大百科全书!耶鲁大学教授再出神作!用1000幅图片,讲明白45亿年历史......
  5. .sync的一个用法
  6. 数据库查询求小于_SQL学习笔记(二)简单查询
  7. ceph中pool的管理
  8. linux(十三)之磁盘分区、创建文件系统、挂载
  9. 企业文件服务器(samba)配置案例一
  10. 武汉大学 RSIDEA 团队开源LoveDA:可同时推进语义分割和迁移学习
  11. Dockerfile最佳实践(二)
  12. 拿别人源码去申请软著_别拿自己的尺子,去丈量别人的生活!
  13. [BZOJ2761/Luogu4305][JLOI2011]不重复数字 题解
  14. windbg入门之旅:(2)一个简单的integer divide-by-zero exception分析案例
  15. 傲腾内存不支持linux吗,内存英特尔® 傲腾™常见问题
  16. python计算圆柱体的表面积和体积_圆柱体体积和表面积计算(一)
  17. 古月学院《如何在Gazebo中实现阿克曼转向车的仿真》课程资料在ROS Noetic版本中运行时的常见错误及解决方法
  18. goldengate 检查点的理解
  19. 原生安卓开发!最详细的解释小白也能听懂,全网独家首发!
  20. 华三防火墙配置端口地址转换_H3C SecPath 防火墙设置之端口映射(命令)

热门文章

  1. PMP-项目成本管理
  2. java货郎担问题求解_货郎担问题(TSP)
  3. 51单片机DS1302实时时钟
  4. 【anaconda】彻底解决windows下anaconda3占用C盘问题(改了envs、pkgs安装路径依旧占用C盘)
  5. passwd修改用户密码
  6. 你的走路姿势正确吗?步态不对牵连多种疾病
  7. 网站常用的favicon.ico文件
  8. 【ArcGIS错误集锦002-Server02】ArcGISserver发布站点报错Failed to create the site. Could not create directory path
  9. 2.系统发生树构建(非加权分组平均法、邻接法python实现)
  10. 【计算机网络】湖科大微课堂笔记 p7-10 计算机网络体系结构:常见的计算机网络体系结构、必要性、分层思想、专业术语