全球主机交流论坛备用站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

全球云38元起免备案V2EX搬瓦工VPS
SEO查询超级PING网站测速
Virmach特价鸡乌云漏洞吾爱破解
查看: 187|回复: 9

PostgreSQL17了 比mysql强很多吗?

[复制链接]

172

主题

524

回帖

1916

积分

金牌会员

Rank: 6Rank: 6

积分
1916
发表于 2024-12-16 14:46:18 | 显示全部楼层 |阅读模式
20230417
目前的业务在用mysql单表7亿数据迁到PostgreSQL会更快更好吗
MJJ,你的签名掉了~~~
回复

使用道具 举报

102

主题

2080

回帖

4892

积分

论坛元老

Rank: 8Rank: 8

积分
4892
发表于 2024-12-16 14:47:28 | 显示全部楼层
不会。这么多数据,只有mysql稳定
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

172

主题

524

回帖

1916

积分

金牌会员

Rank: 6Rank: 6

积分
1916
 楼主| 发表于 2024-12-16 14:51:05 | 显示全部楼层
iiii.im 发表于 2024-12-16 14:47
不会。这么多数据,只有mysql稳定

换成PostgreSQL就不稳定了吗
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

0

主题

968

回帖

2332

积分

金牌会员

Rank: 6Rank: 6

积分
2332
发表于 2024-12-16 14:47:00 | 显示全部楼层
如果不熟PostgreSQL 不建议搬过来。
维护很重要,MYSQL 有什么问题,你很容易能找到解决方法。PostgreSQL, 出了问题,怎么办?
这个级别,需要变更的是架构,业务分布架构化
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

46

主题

475

回帖

1398

积分

金牌会员

Rank: 6Rank: 6

积分
1398
发表于 2024-12-16 14:54:46 | 显示全部楼层
好的,我们用中文再来分析一下将你拥有约 7 亿条记录的 MySQL 表迁移到 PostgreSQL 17 的潜在速度提升和权衡。

PostgreSQL 可能带来的速度提升:

PostgreSQL 相较于 MySQL,在处理大型数据集时,有一些特性可能会带来性能提升:

更高级的查询优化器: PostgreSQL 的查询优化器通常被认为比 MySQL 更强大。它更擅长优化复杂的查询,特别是涉及 JOIN、子查询和聚合的查询,这可能会显著加快查询执行速度。
好处: 如果你当前慢查询涉及复杂的逻辑,PostgreSQL 可能会更高效地执行它们。

索引:
部分索引: PostgreSQL 允许你基于 WHERE 子句在行的子集上创建索引 (例如,CREATE INDEX my_index ON my_table (column) WHERE condition;)。当条件经常使用时,这可以显著减小索引大小并提高查询性能。
表达式索引: 你可以索引函数或计算的结果 (例如,CREATE INDEX my_index ON my_table (lower(column));)。这对于不区分大小写的搜索或其他派生值非常有用。
多列索引: MySQL 和 PostgreSQL 都支持多列索引,但 PostgreSQL 的优化器在某些情况下可能会更有效地使用它们。
好处: 更灵活和高效的索引可以加快数据检索速度。

并发和 MVCC:
多版本并发控制 (MVCC): PostgreSQL 的 MVCC 实现以其稳健性而闻名,允许更多并发的读写操作,而不会出现锁定问题。这可以在高负载下带来更好的性能。
好处: 潜在的更高吞吐量和响应速度,尤其是在写密集型场景中。

表分区:
声明式分区: PostgreSQL 提供内置的声明式表分区,可以更轻松、更快速地管理和查询大型表。你可以按范围、列表或哈希进行分区。
好处: 通过定位特定分区来提高查询性能,更轻松的表管理,以及更快的数据加载/删除。

存储引擎:
TOAST (The Oversized Attribute Storage Technique): PostgreSQL 的 TOAST 系统更擅长处理大型文本或 BLOB 数据,这可能会减少存储开销,并在处理此类数据时提高性能。
好处: 在处理大型数据类型时,提高性能和存储效率。

高级数据类型:
JSONB: PostgreSQL 的 JSONB 数据类型在存储和查询 JSON 数据方面具有很高的性能。如果你的数据包含 JSON,这可能是一个显著的优势。
好处: 在列中有效地存储和查询结构化数据。

扩展:
PostgreSQL 的可扩展性允许你添加专门的功能,例如空间扩展 (PostGIS) 或时间序列扩展,这些功能可以针对特定用例进行优化。
好处: 能够添加自定义功能来优化特定工作流程。

潜在的权衡和挑战:

迁移复杂性:
模式差异: MySQL 和 PostgreSQL 在数据类型、语法和支持的功能方面存在一些差异。你需要仔细映射你的模式并相应地调整 SQL 查询。
数据迁移: 移动 7 亿条记录是一项艰巨的任务。你需要规划数据导出、转换 (如果需要) 和导入。你还需要确保迁移期间数据的一致性。
应用程序更改: 你的应用程序可能使用 MySQL 特定的驱动程序和方言。你需要更新你的应用程序以使其与 PostgreSQL 一起工作。
测试: 迁移后进行彻底的测试至关重要,以识别任何性能下降或错误。
缺点: 需要大量的工作和计划。

配置:
调优: PostgreSQL 有自己的一组配置参数,需要针对最佳性能进行调整,尤其是在处理大型数据集时。这需要专业知识和实验。
缺点: 需要学习一个新系统。

社区和生态系统:
熟悉程度: 如果你的团队更熟悉 MySQL,他们可能需要时间来学习 PostgreSQL。
工具: 虽然两个数据库都有成熟的生态系统,但你可能需要适应新的工具和工作流程。
缺点: 团队可能需要学习曲线。

硬件要求:
资源消耗: 虽然 PostgreSQL 通常是高效的,但与 MySQL 相比,它可能具有略微不同的资源使用模式。确保你的服务器有足够的 RAM、CPU 和存储。
缺点: 你可能需要调整你的服务器配置和大小。

成本:
许可: MySQL 和 PostgreSQL 都以开源许可证提供,但你可能需要为支持或托管服务付费。
迁移成本: 迁移过程本身会产生时间、精力和潜在的咨询费用。
缺点: 需要考虑迁移成本。

在迁移之前,请考虑以下事项:

识别瓶颈: 了解你的 MySQL 表速度慢的 原因。使用 EXPLAIN 等工具分析你的慢查询,并确定需要改进的具体领域。
优化 MySQL: 在迁移之前,探索优化你的 MySQL 设置的方法。这可能包括:
添加适当的索引。
优化你的查询。
调整 MySQL 配置。
在 MySQL 中分区你的表。
基准测试: 如果你决定迁移,请使用你的特定数据和查询对 MySQL 和 PostgreSQL 进行基准测试。这是确定 PostgreSQL 是否真的对你的用例更快的方法。
彻底测试: 在将其部署到生产环境之前,在非生产环境中测试迁移。

结论:

迁移到 PostgreSQL 可能 会带来显著的性能提升,尤其是在你的查询复杂或你正在处理大型文本/JSON 数据的情况下。但是,这并不能保证速度提升,并且会带来重大挑战。

建议:

首先分析和优化你现有的 MySQL 设置。
如果优化没有产生令人满意的结果,那么在承诺完全迁移之前,请使用代表性的数据样本和查询测试 PostgreSQL。
仔细规划迁移,确保你拥有必要的专业知识和资源。

通过仔细评估你的具体需求并进行彻底的测试,你可以就迁移到 PostgreSQL 17 是否适合你做出明智的决定。

希望这个中文分析对你有帮助!
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

28

主题

1840

回帖

5030

积分

论坛元老

Rank: 8Rank: 8

积分
5030
发表于 2024-12-16 14:56:50 | 显示全部楼层
pg要高级的运维来管理 mysql很多便宜的八股超人
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

172

主题

524

回帖

1916

积分

金牌会员

Rank: 6Rank: 6

积分
1916
 楼主| 发表于 2024-12-16 15:04:15 | 显示全部楼层
dragonfsky 发表于 2024-12-16 15:04
pg要高级的运维来管理 mysql很多便宜的八股超人

那很烦啊,,得招多个dba
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

10

主题

23

回帖

110

积分

注册会员

Rank: 2

积分
110
发表于 2024-12-16 15:17:21 | 显示全部楼层
AYrm 发表于 2024-12-16 15:17
那很烦啊,,得招多个dba

招个5-8年干过中大型项目的java 后端就能搞定
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

28

主题

1840

回帖

5030

积分

论坛元老

Rank: 8Rank: 8

积分
5030
发表于 2024-12-16 15:04:00 | 显示全部楼层
hosty 发表于 2024-12-16 15:22
招个5-8年干过中大型项目的java 后端就能搞定

干是能干 钱可一分不能少
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

0

主题

1

回帖

4

积分

新手上路

Rank: 1

积分
4
发表于 2024-12-16 15:22:35 | 显示全部楼层
我现在 mysql 数据库 1.6TB 了怕啥,干就完了
MJJ,你的签名掉了~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

展开

QQ|Archiver|手机版|小黑屋|全球主机交流论坛备用站

GMT+8, 2025-4-23 09:54 , Processed in 0.047008 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表