MariaDB与MySQL与PostgreSQL: 选择最佳数据库的流程图
我应该使用哪个RDB,MariaDB,MySQL或PostgreSQL?
我们经常遇到文章列出了什么是好的和什么是坏的,但是对于读者您没有结论应该使用哪一种。
因此,我提供了流程图,通过它您可以为您选择合适的RDB(关系数据库)。
在本文中,我比较了3个主要的OSS RDB(MariaDB,MySQL和PostgreSQL)
除基准测试结果外,我还将向您展示流程图的背景。
为您选择合适的RDB的流程图
问题1 您的服务将基于WordPress创建
是=> MariaDB
否=> 问题2
问题2 您是否要开发移动应用程序或使用GIS的应用程序?
是=> PostgreSQL
否=> 问题3
问题3 1个表中是否需要64个以上带有索引的列?
是=> PostgreSQL
否=> MariaDB
流程图的背景
总是选择MariaDB而不是MySQL的原因
– Oracle购买了MySQL,这引起了人们的关注,大多数Linux发行商现在都在采用MariaDB。
– MySQL的原始开发人员正在开发MariaDB。 Oracle有其自己的RDB Oracle,因此就Oracle而言,很难完全致力于MySQL的成功。结果,与MySQL相比,MariaDB现在具有更多功能
– 与MySQL相比,MariaDB根据2020年5月的基准测试结果,在默认配置和AWS RDS设置中为您提供了更好的性能。
因此,如果您想选择采用MariaDB还是MySQL,MariaDB是您的更好选择。
选择MariaDB代替Postgre的原因
– WordPress仅支持MariaDB和MySQL,这意味着WordPress不适用于PostgreSQL
– WordPress作为网站的市场份额超过了36%,并且仍在增长。即使您不会仅通过WordPress构建系统,也始终需要WordPress的基础架构
– 如果您拥有适用于WordPress的MariaDB系统,维护PostgreSQL和MariaDB会使您花费更多的系统和人力资源
– 与PosgreSQL相比,MariaDB(MySQL)具有更好的数据库管理工具,如WorkBench和A5:SQL Mk-2
– MariaDB基本上与MySQL兼容,并且许多工程师都有使用MySQL的经验
– 与PostgreSQL相比,MariaDB根据2020年5月的基准测试结果,在默认配置和AWS RDS设置中为您提供了更好的性能
选择PostgreSQL而不是MariaDB的原因
– PostgreSQL支持本机JSON类型(jsonb),因此访问Json数据的速度远快于MariaDB(MySQL),尽管MariaDB提供的Virtual Column性能不足
– 提供REST API的第三方软件(Graphile)可帮助您开发使用JSON的软件,这意味着您可以开发移动应用程序和SPA (单页应用程序),工作量更少。
– PostGIS可帮助您使用GIS开发应用程序
– PostgreSQL比MariaDB具有更多功能
– 错误条件比MariaDB严格,因此您可以避免由于意外缺少数据而导致的问题。
– MariaDB(MySQL)每个表只能有64个键索引。 PostgreSQL没有这样的限制。
通过基准测试来比较RDB的性能
使用默认版本的最新版本进行比较
已测试:2020年5月
机器:1个服务器= Linode 1CPU / 1GB RAM / SSD
测试条件:使用sysbench在60秒内进行8个并发访问。我使用了每个RDB的最新稳定版本以及它们的默认设置。
在这个基准测试中,结果是这样的
mariadb(版本10.4.12)> PostgreSQL(版本12.2)> mysql(版本8.0.2)
项 | MariaDB 10.4.12 |
MySQL 8.0.20 |
PostgreSQL 12.2 |
---|---|---|---|
每秒查询次数 | 7148 | 4757 | 5317 |
每秒交易次数 | 357 | 238 | 265 |
总查询 | 429040 | 285516 | 319284 |
读取查询 | 300328 | 199864 | 223552 |
写查询 | 85808 | 57101 | 63776 |
其他查询 | 42904 | 28551 | 31956 |
被忽略的错误 | 0 | 0 | 38 |
使用AWS RDS的最新版本进行比较
AWS RDS是托管数据库,因此通过使用它,您可以将RDB与调整后的状态进行比较。
AWS RDS的版本可能比官方最新版本稍旧。
机器:EC2(1CPU / 1GB)+ RDS(1CPU / 1GB)
在这个基准测试中,结果就是这样。
mariadb(ver10.4.8)> mysql(ver8.0.17)> postgresql(ver12.2)
项 | MariaDB 10.4.8 |
MySQL 8.0.17 |
PostgreSQL 12.2 |
---|---|---|---|
每秒查询次数 | 7540 | 6727 | 5732 |
每秒交易次数 | 377 | 336 | 286 |
总查询 | 452396 | 403757 | 344111 |
读取查询 | 316680 | 282632 | 240926 |
写查询 | 90477 | 80750 | 68750 |
其他查询 | 45239 | 40375 | 34435 |
被忽略的错误 | 1 | 1 | 34 |
摘要
功能对于选择RDB很重要,但是如果您没有发现任何吸引人的区别,那么在性能方面采用MariaDB看起来很有吸引力。
在实际业务中的使用状态
2020/05的职位数量
Indeed美国
MySQL | 10110 |
PostgreSQL | 4418 |
MariaDB | 494 |
Indeed日本
MySQL | 10308 |
PostgreSQL | 6173 |
MariaDB | 336 |
我知道性能和功能不是全部,但尽管MySQL性能和性能都不错,但与MySQL和PostgreSQL相比,MariaDB在使用方面却落后了很多,这令人有些惊讶。
无论如何,切换RDB都是有风险的,可能会花钱,因此,如果您没有遇到问题,切换就不容易了。
什么是VPS
建设基础设施的有用信息