LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

弃用mysql:用Postgres SQL取而代之 !真香!

liguoquan
2024年2月17日 11:33 本文热度 375

01.数据库简介

互联网上都称MySQL是当前业内最流行的开源数据库,它属于最流行的RDBMS (Relational Database Management System,关系数据库管理系统)应用数据库软件之一。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL. MySQL最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle收购导致MySQL的出现两个版本:商业版和社区版。对于后者,由于Oracle控制了MySQL的开发,受到了广大使用者的批评。


PostgreSQL PostgreSQL标榜自己是世界上最先进的开源数据库,属于关系型数据库管理系统(ORDBMS), 是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统, 最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。PostgreSQL是完全由社区驱动的开源项目。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

Note:

MySQL的层级关系是:实例 -> 数据库 -> 表

Postgres 的层级关系:实例 -> 数据库 -> Schema -> 表

schema 可以理解为命名空间,具体不影响使用



02.性能对比


MySQL- 硬件配置:4核心 16GB内存- 版本:MySQL 8.0
Postgres SQL- 硬件配置:4核心 16GB内存- 版本:Postgres SQL 13

本次压测的数据, SELECT 均为SELECT 按照主键查询, UPDATE按照主键进行UPDATE, INSERT则为一次INSERT一行数据。从压测数据上来看,我们可以得出以下几个结论:

吞吐量:Postgres SQL 在SELECT性能上优于MySQL一倍, 在INSERT上优于4-5倍, UPDATE 则优5-6倍

平均耗时:Postgres SQL优于MySQL不止数倍

热点行更新:,MySQL性能仅为Postgres SQL的, 1/8左右,耗时也增加了7倍。



03.场景及选择


MYSQL相对于Postgres更简单, 所以它可能有着更高的流行度和知名度, 并且在技术资料,以及一些技术组件支持上,支持的也更完善很多, 但这并不是说它不能替代的, 对于作者而言, MYSQL更比较像用于中小企业以及个人的一款数据库工具, 因为会的人多, 文档资料就相对于而言比较的完善,所以学习的难度低。但这些并不意味着MYSQL就是最好的。


从图片上来看Postgres SQL的发展势头着实是非常迅猛的,且目前已经隐隐有追上MySQL的趋势, 而对于MySQL而言,在使用情况及受欢迎成都来看是一直呈现下降趋势。

MySQL更多的适用场景

MySQL比较适用于一些简单的应用场景,比如电子商务、博客、网站等等,以及大中小型系统均可以使用MySQL作为数据存储使用, 它最高支持千万级别到数亿级别的数据量, 但是在高性能要求的情况下, 需要比较较快的响应和较高的吞吐量的时候, MYSQL的性能稍微捉襟见肘, 另外,在查询条件比较复杂、业务吞吐量要求不高,响应时长无要求,的时候,可以选择MYSQL,

Postgres SQL更多的适用场景

所以,相对于MYSQL来说, Postgre SQL更适合复杂的数据结构、高级应用和大规模数据集, 当然如果数据规模比较小, 也可以选择Postgres SQL, 不管是基于什么场景,如果你想用Postgres SQL, 就总可以找到其对应的解决方法, 有且仅有在查询条件比较复杂的时候不太适用, 因为根据我们实际线上的业务表现是 Postgre SQL可能会选错索引。





04.最后


PostgreSQL对于MySQL的优点

  • Postgre SQL性能上远远好于MYSQL, 通过上面的压测数据即可体现,无论是在耗时,还是在整体吞吐量上,有显著优势

  • Postgre SQL在单行更新上有明显优势,尤其是启用了HOT UPDATE后, 性能比MYSQL高了一个数量级

  • 在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨,比较学院化;

  • Postgre SQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。

  • Postgre SQL的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。

  • MySQL 的事务隔离级别 repeatable read 并不能阻止常见的并发更新, 得加锁才可以, 但悲观锁会影响性能, 手动实现乐观锁又复杂. 而 Postgre SQL 的列里有隐藏的乐观锁 version 字段, 默认的 repeatable read 级别就能保证并发更新的正确性, 并且又有乐观锁的性能.

Postgre SQL之于MySQL相对劣势:

  • Postgre SQL系统表设计相对复杂, 在进行一些系统表的统计、操作等方面比较复杂

  • Postgre SQL 的索引选择方面,选错的概率稍高一些(实测), 而且不能跟mysql 一样方便的使用force_index

  • Postgre SQL 存在vacuum, 需要结合具体使用场景,来调整vacuum的参数


该文章在 2024/2/19 14:41:56 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved