MySQL与PostgreSQL的大表处理性能比较

Git-git worktree的使用 Git worktree 是解决多分支开发场景的高效工具。相比传统方法,它可以为同一仓库创建多个独立工作区,每个工作区对应不同分支,避免了频繁切换分支时重新编译的问题。通过 git worktree add 创建新工作区后,各工作区编译文件相互独立,且共享同一个.git目录,既节省磁盘空间又保持实时同步。相比复制整个项目或频繁切换分支,worktree 方案在时间效率、磁盘利用和操作便捷性上都有明显优势,特别适合需要同时在多个分支开发的场景。 阅读详情

来自:http://www.oschina.net/question/129318_19029

硬件: Intel E8400 3.0GHz / 4G DDR2 / 1T 7200R HD

操作系统: Windows 7 64bit

MySQL: v5.5.8, 64bit, Server模式配置(Windows下的GUI界面配置工具里的选项,所举典型应用场景为将MySQL安装至Web Server上,使用中等资源)。测试的引擎为InnoDB。

PostgreSQL: v9.0, 64bit, 用EnterpriseDB的tune工具设置为类似MySQL的Server模式(所举典型应用场景同MySQL)

两数据库的数据文件都在同一个磁盘分区,除了上述选择的模式外,无特殊优化。我用程序分别向两者导入了1000万条数据,耗时如下:

MySQL: 21793640ms

PostgreSQL: 12401956ms

导完发现建表时忘了先把索引建好了。不过正好也观察一下大表维护方面哪个更好。结果无语,两个同时建,每个约有七八个索引,PostgreSQL都建好了,MySQL的一个还没建好。最后,MySQL建完这些索引竟花了约12个小时,可能还多。

顺便看下资源占用,MySQL占内存达700M左右,PostgreSQL开了10个进程,每进程内存占用从几百K到几M不等。以上内存占用均在无查询执行的时候。而磁盘空间方面,MySQL占了一百多个G,PostgreSQL为六十几G。

建完索引测SELECT,按日期排序,不做分页的话,取100条数据MySQL花费160ms,PostgreSQL为363ms。分页取第100 万条开始的100条,MySQL需要约3分多钟,PostgreSQL则只用了594ms。两者做count的时间分别为:14s, 28s,MySQL占优势。

另外提一下,MySQL做分页取最后面的数据时发生过临时文件将我C盘(系统盘)占满之后出错的情况。我C盘本来约有44G可用空间。

以上数据说得比较模糊,因为差别比较大,比较明显,我就没有详细记录这些数据。本来是准备用JMeter来做负载测试的,现在看来,直接测是没什么意思了。不分区的情况下,面对大表PostgreSQL明显比MySQL更平稳。这两天我看看做个表分区再对一下。不过提到表分区,看介绍好像 PostgreSQL落后了,因为它分完区还要自己写规则来将INSERT转到对应的分区表,而MySQL则做的看似更像Oracle。


通义灵码.lingma文件夹占用C盘空间过大解决方案 通义灵码作为主流AI编程助手,其本地缓存机制依赖语义向量、AST语法树和上下文快照等核心技术,在提升代码补全准确率的同时,也带来显著的磁盘空间开销。这类智能IDE插件的本地索引设计,本质上是将大语言模型能力与项目级代码理解深度耦合,导致缓存体积随项目规模、工作区数量及使用时长呈非线性增长。尤其在Windows系统默认路径下,易引发C盘空间告急、IDE响应延迟等工程问题。本文聚焦通义灵码的.lingma目录治理,结合缓存分层原理与NTFS符号链接技术,提供安全清理与跨盘迁移的可落地实践方案,适用于PyChar 阅读详情

相关推荐

Git 底层原理

文章目录@[toc]一.git 介绍一.git 简介二.git 历史三.集中式与分布式四.git 大致结构二..git 目录结构三.git add 与 git commit 简单原理四.创建与合并分支简单原理五.git rebase 简单原理六.开始从底层入手 git七.git add 命令底层原理八.git add 和 git commit 中间的操作(tree 对象的生成)九.git comm...

abcnull 的博客 9446

PostgreSQL -- 性能优化的小方法

一、回收磁盘空间 在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。现在新版PostgreSQL是自动执行VACU...

qq_39783774的博客 2824

Git checkout远程分支:原理、流程与7大避坑铁律

Git中的远程分支并非本地自动同步的实体,而是远程仓库引用(refs/heads/*)在本地的只读快照(refs/remotes/origin/*)。理解这一本质,是掌握分布式版本控制的关键前提。其核心原理在于Git的三棵树模型——工作目录、暂存区与本地仓库引用系统,而checkout远程分支实质是创建本地分支指针并绑定上游跟踪关系。这一机制保障了离线操作可靠性,也带来了fetch→switch→track的标准流程要求。典型应用场景包括协同开发新功能、复现历史Bug、验证发布标签及多远程仓库切换。本文深入

weixin_30475039的博客 565

mysql和postgresql对比

最近在学postgresql,之前一直学的mysql,那么就做个对比吧 Postgresql的优势 PostgreSQL 的稳定性极强。 Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。 任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后.

YZSS17的博客 1033

Linux磁盘空间排查:du与sort命令组合实战指南

在Linux系统管理和运维中,磁盘空间管理是基础且关键的技能。其核心原理在于通过文件系统监控工具实时跟踪存储使用情况,当空间不足时需快速定位问题根源。du命令作为磁盘使用分析工具,能够精确统计目录和文件的磁盘占用,而sort命令则负责对数据进行排序整理。这两者的技术价值在于将复杂的空间分析简化为可自动化的工作流,极大提升了运维效率。常见的应用场景包括服务器磁盘告警排查、日志文件清理、缓存目录分析以及存储资源规划等。本文通过实战案例,详细讲解如何利用du命令的-h、-s、-d等选项进行分层诊断,并结合sort

weixin_30372371的博客 490

Windows磁盘占用排查实战:用du命令快速定位C盘空间杀手

磁盘空间管理是运维和日常使用中的高频需求,当C盘爆满时,如何快速定位大文件成为关键。传统图形化工具扫描慢、难以脚本化,而命令行工具du(disk usage)通过递归遍历目录,精准统计各级目录大小,结合排序管道可瞬间揪出空间占用大户。du不仅能提高排查效率,还能无缝嵌入自动化脚本,适用于服务器无人值守监控和本地磁盘清理场景。本文从命令行工具的基本原理出发,分享在Windows上使用du的多种方式、核心参数组合及真实排障流程,帮助你在面对磁盘告警时,不再依赖鼠标逐个点击,而是用一条命令快速锁定元凶并解决问题。

weixin_34072296的博客 302

MySQL 和 PostgreSQL,我到底选择哪个?

MySQL 和 PostgreSQL 是两个广泛使用的关系型数据库管理系统(RDBMS)。它们都具有强大的功能和广泛的社区支持,但在某些方面存在一些差异。本文将详细比较 MySQL 和 PostgreSQL,包括它们的特点、性能、扩展性、安全性以及适用场景等方面。

网络技术联盟站 1万+

git命令使用

git命令使用

s_sos0的博客 1468

pg数据库与MySQL的count函数_PostgreSQL的count(*) count(1) count(列名)的区别

1、在PostgreSQL中这三种count是有区别的:select * from中的*将扩展表的所有列,因此,许多人认为使用count(*)效率低下,应该写count(id)或count(1)代替。count(*)中的*与select *中的*是完全不同的:1)count(*)中的*仅仅代表row并不会展开它,写入count(1)与count(*)是相同的效果,count(1)多了一步计算,在C...

weixin_39820177的博客 2228

Ubuntu GitLab服务器git-data中tmp_pack_xxx文件占满磁盘

此服务器上搭建了SVN和GitLab服务器。使用SVN上传文件时报错“SVN Couldn’t perform atomic initialization”,网上很多人说是由于Linux系统的磁盘空间满了所导致的,因此登录到服务器查看磁盘情况。没想到是GitLab导致磁盘撑爆的!使用发现根目录1.1T的空间全部占满(下图是解决问题后的截图,将git-data迁移到了/home目录下)再使用查找根目录下哪个目录占的空间大,发现/var占1.1T逐级查找,最终确定是/var/opt/gitlab中git-dat

studyingdda的博客 1518

Git Sparse Checkout实战:如何只拉取项目中的特定文件夹(附常见问题解答)

本文详细介绍了Git Sparse Checkout(稀疏检出)功能的实战应用,指导开发者如何仅拉取Git项目中特定的文件夹。通过对比两种启用工作流、详解锥形模式与非锥形模式,并附上添加/移除目录、切换分支等常见问题解答,帮助读者高效管理大型代码仓库,优化本地工作区。

docker8compose的博客 534

解决mySQL占用内存超大问题

转载自:http://blog.youkuaiyun.com/dhping/article/details/5532828 为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆。网上搜索了一下,得到高人指点my.ini。再也没见再详细的了..只好打开my.ini逐行的啃,虽然英文差了点,不过多少M还是看得明的^-^   更改后如下: innodb_buffer_

ningzero123的专栏 2711

git仓库压缩瘦身

仓库源代码 10KB 但历史数据占了 10MB, 使用 git 命令为远程仓库瘦身

莫弹弹的博客 1万+

Git通讲-第二章(2):对象数据库

理解了上篇文章的两大模型(快照和不可变对象)后,让我们看看Git 的核心——对象数据库,快照存储在目录中,Git 通过这种方式管理项目的所有历史和数据。在Git中,Pack文件及其索引文件是为了优化存储和查找效率而引入的。如果你没有执行git gc或者仓库没有达到一定规模,可能没有注意到它们的存在。Pack文件将仓库的对象打包并压缩,有助于提高Git的性能,尤其是在处理大量对象时。临时查看旧版本修改分支历史git reset(根据需要选择--soft--mixed或--hard保持提交记录,创建回退提交。

2301_80272161的博客 1897

git init底层原理:从.git目录结构看Git仓库初始化本质

Git仓库初始化(git init)是版本控制的起点,其核心在于本地构建一个自包含的对象数据库与引用系统,而非连接远程服务。它通过创建.git目录实现内容寻址存储(Content-Addressable Storage),依托HEAD、refs/、objects/等组件构成轻量级、离线可用的本地仓库。这种设计赋予Git分布式能力,支撑无网提交、分支快照、高效同步等关键技术价值,广泛应用于单机开发、CI/CD流水线搭建及私有裸仓库部署等场景。理解git init,就是理解Git‘本地优先’架构的基石。

weixin_33694172的博客 321

git安装教程

git安装教程

wanchalove的博客 236

Git-knife:表格化批量编辑Git提交历史,告别git rebase -i的繁琐

版本控制系统Git是开发者管理代码历史的基石,其核心原理是通过有向无环图记录每次提交的元数据与快照。然而,当需要对大量历史提交进行批量修改时,传统的交互式变基命令(如git rebase -i)操作繁琐且容易出错。Git-knife正是为了解决这一工程痛点而生,它将整个仓库的提交历史转换为可编辑的电子表格(如CSV),让开发者能像处理数据一样直观地进行增删改查。这一技术革新显著提升了在统一提交规范、修复错误作者信息或清理敏感数据等场景下的操作效率与准确性。通过解析Git对象数据库,Git-knife在本地实

weixin_30770783的博客 366

Git的基本使用+分支

什么是Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理 特点: 项目越大越复杂,协同开发者越多,越能体现出的高效能和高可用性 Git的特性 1.直接记录快照,而非差异比较 传统的版本控制系统(例如SVN)是****基于差异的版本控制,它们存储的是一组基本文件和每个文件随时间逐步累积的差异 好处:节省磁盘空间 缺点:耗时、效率低 在每次切换版本的时候,都需要在基本文件的基础上,应用每个差异,从而生成目标版本对应的文件 Gi

m0_56712012的博客 648
上一篇: Mysql 和 Postgresql 对比
下一篇: jquery 时间封装包
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值