IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:PostgreSQL

共 29 篇相关文章

IT 累计浏览 50

PostgreSQL Docker镜像大版本升级

针对PostgreSQL 14官方支持即将到期及所用PostGIS镜像版本(14-3.2)的后续维护问题,本文详述了如何在Docker环境中将数据库从14版本升级至17版本。作者澄清了Docker容器内同样可以使用pg_upgrade工具进行大版本升级。升级流程主要分为三个阶段:首先进行周密准备,包括停止旧容器、打包备份旧数据卷、从旧容器中拷贝出PostgreSQL 14的二进制文件(lib与share目录),并使用新版本镜像初始化空的新数据目录。核心的升级步骤是通过一条挂载了旧数据、新数据以及旧版二进制目录的Docker命令,以postgres用户运行目标版本镜像中的pg_upgrade工具,指定新旧数据目录和二进制路径来执行升级。升级完成后,需要执行清理与优化工作,包括重命名新数据目录、启动新版本容器、运行vacuumdb命令分析优化数据库统计信息,确认无误后方可删除旧容器及相关的数据、二进制备份文件。整个过程提供了一套可在容器化部署中安全完成数据库跨大版本升级的可操作方案。

IT 累计浏览 57

从HertzBeat聊聊SnakeYAML反序列化

本文围绕Apache Hertzbeat后台代码执行漏洞(CVE-2...)展开,深入剖析了在无外网连接条件下,如何通过PostgreSQL JDBC驱动的漏洞实现命令执行的“不出网利用”方法。文章首先介绍了漏洞背景,指出该漏洞源于SnakeYAML反序列化问题,攻击者可通过构造恶意YAML配置,在目标服务器上执行任意代码。核心利用链条包括:利用Hertzbeat的后台功能触发YAML解析,通过JDBC驱动的特定URL格式(如jdbc:postgresql://...)加载恶意类,从而绕过网络限制完成攻击。文中详细演示了从漏洞发现、Payload构造到最终命令执行的全过程,强调了此类漏洞在受限网络环境下的危害性与隐蔽性。最后,作者结合审计实践,总结了防御此类反序列化漏洞的建议,包括严格校验输入、更新依赖库以及加强网络策略管理。

IT 累计浏览 5,068

豆瓣是啥?

这篇讲的是豆瓣作为“匿名品味社区”的本质与演化路径。作者从博客时代切入,指出豆瓣早期通过“豆瓣秀”插件,让博主在侧边栏自动展示书影音记录,以极低门槛实现了口碑冷启动——这本质是让用户展演自己的文化资本。 文章的核心观点是:豆瓣构建的是“文化资本”而非社交资本。在匿名环境下,用户通过书影音记录塑造个人品味形象,形成精神层面的优越感与认同。这种对文化深度的追求,解释了豆瓣为何不像微博那样追逐热度和流量,也解释了其产品逻辑的诸多选择,例如早期对游戏条目的拒绝、以及对社区运营的克制态度。 作者也分析了豆瓣小组的爆发式增长与书影音社区的割裂,并点出阿北试图扮演“不运营的上帝”这一角色在现实中的矛盾。最终,文章将豆瓣定位为一个追求文化深度而非用户广度的产品,其影响深刻地塑造了许多人的文化消费选择,但也面临如何平衡社区活力与品味调性的长期挑战。

IT 累计浏览 2,728

教你如何查询当前主流数据库及其排名?

查询数据库流行度排名有捷径吗?作者直接指向了db-engines.com这个权威榜单。这篇文章带我们快速浏览了2015年6月的数据库流行度前十名,像Oracle、MySQL、SQL Server这些巨头稳居前列,但有意思的是,微软的Access依然高居第七,让不少开发者感到意外。同时,Redis作为新贵闯入了前十,而国产的巨杉数据库排名则从186位滑落至235位,引发了讨论。 榜单的排名并非凭空而来,它综合了277个数据库在资讯网站、谷歌搜索、技术讨论、招聘市场以及社交网络上的热度数据。通过这些多维度的积分统计,这个榜单真实反映了当时各类数据库在开发者社区和行业中的实际关注度与应用情况。对于需要了解数据库技术趋势或进行技术选型的人来说,这提供了一个非常直观的参考视角。

IT 累计浏览 9,148

【2014年版】异地购房提取北京公积金

这篇讲的是作者离职后异地购房,如何提取北京公积金的完整实操经历。文章从个人“踩坑”出发,梳理了从账户状态确认、材料准备到现场办理的全流程。 作者首先发现自己的公积金账户已被原单位挂靠的中智公司“集中封存”,导致无法线上处理。朝阳管理部电话长期打不通,最终通过拨打北京公积金中心客服热线010-96155,获取了清晰的材料清单,包括购房合同、发票、身份证、结婚证,以及针对已离职人员的关键文件——异地购房证明和社保缴纳明细。 文章详细记录了如何与购房地居委会沟通开具证明,并分享了自己拟定的证明模板。现场办理时发现,正是因为账户处于“封存”状态,才得以以个人名义直接前往公积金中心办理,避免了通过单位的繁琐流程。作者在文中对比了南北方办事效率的差异,并总结了多条实用提示:优先查询官方网站、耐心拨打官方客服电话、利用在线问答渠道获取准确信息。整体是一份信息扎实、充满细节的“办事指南”式经验复盘。

IT 累计浏览 2,733

PostgreSQL查询优化简介

这篇讲的是PostgreSQL查询优化的核心思路。作者从执行计划分析入手,解释了为什么看似简单的查询会变慢——比如缺失索引、统计信息不准或连接方式不当。文章用具体例子演示了如何用EXPLAIN ANALYZE定位瓶颈,并展示了调整索引、重写子查询或使用CTE对性能产生的实际影响。 特别值得关注的是,文中对比了顺序扫描与索引扫描在不同数据量下的选择逻辑,指出优化器如何依赖统计信息做决策。对于复杂查询,作者强调了提前过滤数据的重要性,并演示了避免全表扫描的几种写法。 最后通过几个真实案例,说明优化后查询耗时从秒级降到毫秒级的过程。整体既覆盖了基础工具使用,也传递了“先诊断再优化”的实用哲学,适合日常与数据库打交道的开发者参考。

IT 累计浏览 3,188

PostgreSQL从菜鸟到专家 数据库的数据存取设计

这篇讲的是,当你使用PostgreSQL时感觉“明明建了索引,查询还是慢”,问题可能出在数据存取的底层设计上。作者从一个常见的性能瓶颈场景出发,系统性地拆解了数据如何在磁盘与内存之间流转。文章深入到了PostgreSQL的行存与列存布局、MVCC机制下数据的多版本存储方式,以及TOAST大字段处理等具体实现层面。它没有停留在“建立合适索引”的通用建议上,而是解释了为什么选择B-tree或Hash索引、何时该用GIN索引处理JSONB,这些选择背后与表的填充因子、死元组清理(VACUUM)策略是如何紧密关联的。通过梳理从插入、更新到查询的全链路,文章阐明了存取设计是一个环环相扣的系统工程,一处不当就可能形成性能短板。对于希望从“会用”PostgreSQL走向“用好”的开发者,这篇文章提供了一张清晰的内部运作地图。

IT 累计浏览 3,502

PostgreSQL从菜鸟到专家 PostgreSQL介绍

这篇讲的是PostgreSQL这款开源关系型数据库的核心定位与核心优势。作者从“为什么需要PostgreSQL”出发,点明它并非简单的MySQL替代品,而是为了解决特定场景下的痛点而生——比如需要复杂查询、严谨事务支持,或是追求接近商业数据库的功能与性能。 文章着重刻画了PostgreSQL的几个关键特质:它对SQL标准的高度遵从,提供了诸如窗口函数、CTE等高级特性;其MVCC(多版本并发控制)实现带来的读写互不阻塞的优势;以及极强的可扩展性,用户不仅能添加自定义类型与函数,甚至能通过扩展机制实现从时序数据处理到机器学习的多种功能。这些都让它能从容应对企业级应用、地理信息系统(GIS)以及数据仓库等多样化场景。 文中也坦诚地讨论了学习曲线,指出其强大的背后是需要一定理解成本的。总体而言,这篇导读清晰地勾勒出PostgreSQL作为一个“全能型选手”的画像,适合那些不满足于基础功能、希望建立可扩展数据架构的开发者深入了解。

IT 累计浏览 2,730

PostgreSQL从菜鸟到专家 什么是PostgreSQL数据库

这篇讲的是PostgreSQL这款数据库究竟是什么,以及它为何值得开发者关注。 作者从PostgreSQL的核心定义切入:它是一个成熟、可靠且完全开源的关系型数据库管理系统,支持标准的SQL查询语言。文章没有停留在概念层面,而是用具体细节支撑:它可以在从FreeBSD、Linux到Windows的多种平台上运行,功能上涵盖了事务、子查询、外键、复杂锁乃至多版本并发控制等高级特性,性能基准测试可与商业产品一较高下。 接着,文章回溯了其从1977年伯克利大学的Ingres项目演化至今的完整历史,这解释了它深厚的技术根基。在架构上,PostgreSQL采用经典的客户端/服务器模型,通过独立的服务器进程管理数据访问,这种设计保障了多用户环境下的数据完整性与安全性,并支持通过ODBC、JDBC等多种方式连接。 文章还特别澄清了“开源”的真正含义:使用、修改和重新发布软件的权利(遵循类似BSD的宽松许可),以及背后活跃的社区和商业支持。这不仅是一篇入门指南,更完整展现了PostgreSQL作为开源数据库典范的全貌。

IT 累计浏览 2,149

PostgreSQL参数优化对比性能测试

这篇讲的是作者通过实测对比,拆解几个关键PostgreSQL参数对查询性能的实际影响。文章没有停留在理论,而是搭建了测试环境,针对 `shared_buffers`、`work_mem`、`effective_cache_size` 等核心参数,设计了不同的配置组合,并用 `pgbench` 等工具跑出了具体的TPS(每秒事务数)和延迟数据。 作者发现,盲目调大内存参数并不总是带来线性提升。例如,`work_mem` 设置过大会显著增加复杂查询的排序速度,但并发上升后反而可能因内存竞争导致整体吞吐下降。而 `effective_cache_size` 的设置,需要更贴合实际服务器的物理内存与磁盘缓存能力,才能让查询规划器做出更优的索引选择。 这些结论直观地说明了参数调优中“权衡”的重要性。文章提供的对比数据和场景分析,对于正在面对慢查询、或是准备进行数据库初始化的运维和开发人员来说,能直接帮助理解每个参数的实际作用边界,避免陷入“参数越大越好”的误区。

IT 累计浏览 4,344

Super Smack

Super Smack 是一款专注于数据库性能的压力测试工具,支持 MySQL、PostgreSQL 以及 Oracle 等主流数据库。它的特别之处在于,其最初的版本由资深数据库专家 Sasha Pachev 创建,后续由知名技术布道者 Jeremy Zawodny 进行维护,保证了工具的专业性和持续更新。 这款工具的设计初衷是为了解决真实业务场景下的数据库负载模拟需求。不同于简单的基准测试工具,Super Smack 能够生成复杂、接近实际用户行为的混合查询负载,从而更精准地评估数据库在高压下的性能瓶颈、稳定性与扩展能力。对于数据库管理员和后端工程师来说,它是进行容量规划、架构验证以及性能调优时一个实用且直接的利器。

IT 累计浏览 3,354

PostgreSQL 9.1的新特性

这篇讲的是 PostgreSQL 9.1 带来的一系列重要更新。作者从性能与功能两个维度出发,详细剖析了该版本的核心变化。 文章重点介绍了几个关键特性:可序列化隔离级别的引入,终于让事务的隔离性达到了SQL标准的最高要求,这对需要强一致性的应用是个福音;外数据包装器(FDW)的改进,使得跨数据库查询更加灵活和高效;同步复制的正式支持,则直接提升了主从架构的数据安全性。 与前几个版本相比,9.1 的升级不再只是修修补补,而是在数据完整性、系统集成度和运维友好性上都迈出了实质性的一步。例如,同步复制解决的是“数据不丢”的根本信任问题,而 FDW 的增强则降低了异构数据整合的门槛。 总的来说,这篇文章梳理了从理论合规到实践落地的技术演进,对正在评估数据库升级或架构选型的开发者来说,提供了一个清晰的功能路线图和决策参考。

IT 累计浏览 2,932

规范用户的评论角色

评论区往往是网站最鲜活的地方——用户围绕话题的讨论能催生“意见领袖”和真实“口碑”,但这也让它成了“网络灰社会”重点渗透的目标。这篇讲的是,为什么评论区管理会成为网站运营中最棘手的任务之一。 文章指出,当前评论生态里活跃着“水军”、“网络打手”、“信用粉刷匠”等角色。他们假借普通用户的身份,有组织地制造舆论、扰乱视听,使得原本开放的公共讨论空间面临被操控和污染的风险。 这种复杂性源于评论的双重属性:它既是用户参与和内容价值的重要体现,也是信誉体系中最容易被伪造的一环。网站需要在鼓励真实表达与防范恶意操纵之间找到平衡,而这背后往往涉及身份验证、行为分析和社区治理等多层面的挑战。 最终,这篇文章揭示了一个核心矛盾:越是开放的评论区,越需要精细的规则设计和持续的技术运营来守护其真实性。对于任何想做好社区产品的团队来说,这都是一个无法回避的课题。

IT 累计浏览 4,220

Ubuntu下Postgresql-8.4安装及配置

这篇讲的是在Ubuntu系统上部署PostgreSQL 8.4数据库的完整流程。作者从软件源配置讲起,详细说明了如何通过apt-get安装特定版本的数据库,并处理了可能遇到的依赖问题。文章重点覆盖了关键配置文件的修改,比如调整postgresql.conf中的连接参数和性能设置,以及通过pg_hba.conf配置客户端认证规则。文中还提及了服务启动、创建数据库和用户等基础操作,并附带了一些初次安装后值得优化的参数建议。整体来看,它是一份针对早期版本PostgreSQL在Ubuntu环境下的实用部署备忘,对需要维护遗留系统或特定环境配置的开发者仍有参考价值。

IT 累计浏览 4,026

Ubuntu下PostgreSQL数据库集群(PL/Proxy)配置方法

这篇讲的是如何在Ubuntu环境下,通过PL/Proxy搭建PostgreSQL数据库集群,来解决单机PostgreSQL在高并发读写场景下性能与扩展性的瓶颈问题。PL/Proxy是基于PostgreSQL实现的开源透明数据库集群中间件,核心思路是通过“分片”将数据分散到多个后端节点。 文章从环境准备讲起,详细演示了如何安装PL/Proxy插件、配置主节点与工作节点、编写分片函数(proxy_table),并给出了一个清晰的配置文件示例。作者特别指出,PL/Proxy的配置重点在于`proxy_table`的定义,它决定了SQL查询如何被路由到不同的后端实例。 文末附有性能对比数据:在4核8G的机器上,PL/Proxy集群的插入吞吐量是单机的3.2倍,查询吞吐量提升约2.8倍。结论是,PL/Proxy适合需要水平扩展读写能力,且能接受一定配置复杂度的应用场景,是中小规模PostgreSQL集群的一个轻量级可行方案。

IT 累计浏览 2,789

通过PostgreSQL的源代码安装数据库

这篇讲的是如何从源码层面亲手构建一个PostgreSQL数据库。作者从“为何不直接使用预编译包”这个常见疑问出发,直指许多开发者对于掌控安装过程、理解底层依赖的需求。文章并没有停留在罗列命令,而是详细拆解了从获取源代码、处理依赖库、配置编译选项到最终初始化数据库实例的完整流程。 其中特别值得关注的是,作者对几个关键编译选项的作用进行了清晰的解释,并说明了它们如何影响最终数据库的功能与性能。例如,针对特定硬件平台的优化开关,或者启用某些实验性特性的方法,这些在常规安装文档中容易被忽略的细节,在这里得到了重点提示。此外,对于可能遇到的常见编译错误,文章也给出了具体的排查思路。 通过跟随这个过程,读者不仅能获得一个“干净”的、完全符合自己需求的数据库环境,更重要的是能建立起对PostgreSQL构建系统的直观认识,理解其各个组件是如何协同工作的。这对于后续的深度定制与故障排查都大有裨益。

IT 累计浏览 5,500

谈谈与数据打交道的工作

这篇来自M.S.S版的帖子,是作者“郭大路”对自己多年数据工程师生涯的一次坦诚回顾。他从自己处理过的“脏活累活”切入,细致描述了日常工作中那些看似平凡却至关重要的环节:从应对无尽的报表与临时取数需求,到梳理混乱的业务口径与数据链路。 作者没有谈论高深的架构或炫酷的技术,而是聚焦于数据工作的“本质”——它往往是在为组织的决策建立一个粗糙但必须可用的“现实模型”。他分享了如何从被动接需求,转向主动梳理数据资产、定义关键指标,从而在繁杂中建立秩序的过程。文中的具体案例,比如一次紧急活动的数据支撑经历,生动体现了这种从“灭火”到“基建”的转变。 文章的启发在于,它剥离了数据工作常被赋予的“赋能”光环,还原了其作为企业数字化“基石”工作的真实面貌:琐碎、需要极强的耐心与责任感,但正是这些日积月累的“脏活”,最终支撑起了上层分析的准确性与决策的可靠性。

IT 累计浏览 3,160

在Linux上编译安装PostgreSQL8.3.X

这篇文章讲的是如何在Linux系统中,从源码包开始一步步编译安装PostgreSQL 8.3.x版本。作者没有依赖现成的软件包管理器,而是带读者走完了整个源码编译流程——从解压tarball包开始,包括了配置、编译和安装的完整链路。 对于很多需要特定版本、或者希望对数据库行为有更精细控制的场景,直接从源码构建是一个常见选择。这篇文章的价值在于它把8.3.x这个较早版本的安装细节记录了下来。尽管PostgreSQL已经迭代到更高的版本,但文章里关于处理旧版依赖、配置选项选择,以及可能遇到的编译环境问题的描述,对于维护遗留系统或理解编译原理依然有参考意义。 全文围绕一个具体的命令行操作展开,但隐含了“为什么需要这样做”和“每一步在做什么”的思考。适合那些不满足于简单安装,想深入了解数据库部署底层过程的技术人员。

IT 累计浏览 3,769

PostgreSQL与MySQL的区别

这篇讲的是 MySQL 和 PostgreSQL 这两大数据库该如何选择。作者没有罗列枯燥的特性列表,而是直接切入两者最核心的定位差异:MySQL 为了极高的查询速度和易用性,在功能上做出了取舍;而 PostgreSQL 则忠实于 SQL 标准,提供了更丰富、更严谨的功能,比如复杂的查询、完整的约束和更强的扩展性。 文章进一步指出,这种哲学上的不同,直接决定了它们各自最适合的场景。如果你的应用需要处理海量数据、追求极致的读写性能,比如高并发的 Web 应用,MySQL 可能是更直接的选择。反之,如果你从事地理信息系统、数据分析,或者需要处理复杂的数据关系并保证数据的完整性和正确性,PostgreSQL 强大的功能和对标准的坚持会带来巨大优势。最后文章还提到,PostgreSQL 在近年来的版本中性能已有长足进步,而 MySQL 也在通过插件等方式增强功能,但二者底层的设计思想差异依然明确。

IT 累计浏览 3,582

PostgreSQL

这是一篇关于 PostgreSQL 数据库的基础介绍。文章从其开源历史与核心定位切入,重点阐述了它作为一款功能强大的对象关系型数据库,如何在扩展性、标准兼容性以及数据完整性保障方面形成独特优势。 PostgreSQL 最显著的特点之一是其极强的可扩展性。它允许用户自定义数据类型、函数、操作符乃至索引方法,这使得它能够灵活适应从传统OLTP到复杂地理空间分析、时序数据处理等多样化的业务场景。文章提到了其丰富的内置数据类型(如 JSON/JSONB、数组、范围类型)以及强大的扩展生态系统(如 PostGIS 用于地理信息,TimescaleDB 用于时序)。 在核心功能上,PostgreSQL 对 SQL 标准的高度遵循、严谨的事务支持(ACID)以及多版本并发控制(MVCC)是其可靠性的基石。这些特性确保了数据的一致性,即使在高并发读写环境下也能稳定运行。 对于开发者和架构师而言,PostgreSQL 提供了一个兼具关系型数据库的严谨与 NoSQL 灵活性的选择。无论是构建全新的应用,还是需要处理复杂的分析查询,它都提供了一个坚实且功能完备的基础。