摘要:
问题 环境:python3.8 代码:在leetcode本地vs code运行时候报错。 原因 经过查询相关的资料,发现只需要在头部导如 模块就行了。 typing模块 python是一门弱类型的语言,使用过程不用过多关注变量的类型,但是同时也带来了问题,就是代码的易读性变差了,有时候自己都不知道传 阅读全文
摘要:
背景 DBA在排查数据库问题时候,首先查看的就是日志。PG数据库在有的版本中,默认是不会写记录日志的,尽管启动项pg_ctl中提供了一个 l参数,但是只是用来分析启动时候的参数,在数据库运行过程中也需要查看日志中出现的告警,错误,还有所有人最关心的慢查询。本文就是来分析postgresql.conf 阅读全文
摘要:
问题背景 在pg数据库实际使用过程中,随着业务数据的不断累积,会导致磁盘的可用空间越来越小,尤其是在linux下,没办法将原来的磁盘进行扩容,只能够通过加载新的磁盘来进行扩容。如果原来的pg数据库是一个簇,那么可以很好处理,一种是将数据库簇一部分挪走,另一种就是本文讲到的表空间迁移的方式。 分析 p 阅读全文
摘要:
背景 数据库运维过程中,dba都比较关注sql的执行时间。研发在数据库应用开发上,速度慢的sql比比皆是,很多速度很慢都是sql写得不好,效率不高,执行过程中也会造成数据库的负载过大。比如无用的去重,无效的条件,不必要的子查询,sql用不上的索引。而对于这些不符合要求的sql,首先要去把这些sql找 阅读全文
摘要:
问题 pg数据库的参数都是在postgresql.conf中,一般情况下,initdb后,数据库会给一个初始的配置参数。但是很多业务场景下,需要进行针对性的调整。但是调整完后,生效就比较头疼,有的参数是需要重启数据库的,有的只需要重载一下配置 文件,有的可以是会话级别的。这里配置文件就没有每个参数都 阅读全文
摘要:
介绍 pg数据库在不同的业务场景下,参数最好也需要进行针对的调整。默认值是在确保资源消耗最小的情况下,pg都能够运行起来,不会导致任何致命性的威胁。而实际中,默认的参数需要进行优化来达到性能的最大化,本文介绍一些常用的参数配置。 参数 pg数据库默认安装完后在data目录会有一个postgresql 阅读全文
摘要:
概述 面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language),这里本文推荐一个工具starUML,该工具能够很好地作为软件开发,系统设计的工具。 图例 UML中有九种建模的图标,即: 用 阅读全文
摘要:
1 背景 一般来说,数据库的升级很少遇到,除非确实出现了新的业务需求或者系统bug无法解决的情况下才选择升级。本文基本测试了一下pg9.6升级到10.5的过程,没有遇到太大的问题。 2 升级 之前博客中有介绍,其实postgresql和mysql的安装逻辑结构很相似,数据和程序时分开的,启动时候指定 阅读全文
摘要:
概述 pg数据库和mysql数据库的安装目录结构很类似,程序和数据是分开的,在启动时候可以自行指定不同的数据目录来做到启动不同的数据库。 目录 下面表格来解释pg数据目录下,每个文件夹以及文件名的作用。 目录名|作用 | base|该目录包含了数据库中各个数据库,每个数据库都是由一个文件夹组成,文件 阅读全文
摘要:
1 介绍 流复制是pg数据库9.0后面版本新增的功能,基本原理是从服务器连接到主服务器,主服务器在WAL记录产生时就将它们以流式传送到从服务器中,而不必等到WAL日志文件被填充。 默认情况下,流复制是异步的,在这种情况下,主服务器提交一个事务与该变化在从服务器上变得可见之间存在短暂的延迟,不过这种延 阅读全文