2023-01-24一、NoSQL数据库1、NoSQL数据库的简介NoSQL(NoSQL=NotOnlySQL),即“不仅仅是SQL”,泛指非关系型的数据库。NosQL不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。(1)不遵循SQL标准(2)不支持ACID。(原子、一致、隔离、持久)(3)远超于SQL的性能2、NoSQL适用场景(1)对数据高并发的读写(2)海量数据的读写(3)对数据高可扩展的3、NoSQL不适用场景(1)需要事务支持(2)基于sql的结构化查询存储,处理复杂的关系。4、非关系型数据库(1)Memcache①不支持持久化②支持类
前几天写了CPU分析与IO分析的文章,本来昨天想再凑一个内存分析的,不过因为昨天一大早就去拜访客户了,所以今天补上。今天早上本来和优诺的傲寒约好了去他那里取取经,听听他对智能化运维的看法,不过因为一些其他安排临时取消了,十分遗憾。PG数据库遇到内存问题要立即进行分析的场景并不多,因为大多数PG数据库的内存使用率过高的报警并不意味着内存使用情况异常,内存真的不够用了。因为PG数据库是使用DOUBLEBUFFERING机制的,大量的内存很可能被BUFFER/CACHE占用了。上面的free命令可以看到32G内存使用了15G多,但是free只剩下599M了,BUFF/CACHE占了15G多。不过如
前几天写了CPU分析与IO分析的文章,本来昨天想再凑一个内存分析的,不过因为昨天一大早就去拜访客户了,所以今天补上。今天早上本来和优诺的傲寒约好了去他那里取取经,听听他对智能化运维的看法,不过因为一些其他安排临时取消了,十分遗憾。PG数据库遇到内存问题要立即进行分析的场景并不多,因为大多数PG数据库的内存使用率过高的报警并不意味着内存使用情况异常,内存真的不够用了。因为PG数据库是使用DOUBLEBUFFERING机制的,大量的内存很可能被BUFFER/CACHE占用了。上面的free命令可以看到32G内存使用了15G多,但是free只剩下599M了,BUFF/CACHE占了15G多。不过如
关于PG在Sharedbuffers上的DOUBLEBUFFERING设计,一直是争议极多的。有一些搞PG的朋友认为这是PG充分利用OSCACHE的一种特殊设计,是PG数据库设计中比较优秀的地方。还有一些朋友则认为这是一种过时的设计,与当前数据库技术的发展潮流所相违背的。前些天有几个朋友谈到这个问题,希望我写篇位置表达下我的观点。以我这些年做数据库优化的经验来看,DOUBLEBUFFERING的设计如果算是一种技术上的进步,在这一点上我一直是不太认同的。众所周知,现在几乎所有的现代数据库产品都是用AIO/DIO等方式来访问底层存储系统,只有PG目前还通过BUFFER/CACHE来读取物理文件。
关于PG在Sharedbuffers上的DOUBLEBUFFERING设计,一直是争议极多的。有一些搞PG的朋友认为这是PG充分利用OSCACHE的一种特殊设计,是PG数据库设计中比较优秀的地方。还有一些朋友则认为这是一种过时的设计,与当前数据库技术的发展潮流所相违背的。前些天有几个朋友谈到这个问题,希望我写篇位置表达下我的观点。以我这些年做数据库优化的经验来看,DOUBLEBUFFERING的设计如果算是一种技术上的进步,在这一点上我一直是不太认同的。众所周知,现在几乎所有的现代数据库产品都是用AIO/DIO等方式来访问底层存储系统,只有PG目前还通过BUFFER/CACHE来读取物理文件。
现在基于PG或者脱胎于PG的国产数据库越来越多,再加上PG社区版用户也在快速增长,因此多学点PG的知识对于DBA今后的转型来说,还是挺有用的,因此这几天我们多讨论一些PG相关的问题。昨天我们讨论了PGIO优化方面的问题,今天我们就来讨论一个核CPU有关的问题。今天的议题是,如果PG数据库服务器的CPU使用率突然升高,我们应该从哪几个方面去分析。如果遇到数据库服务器CPU使用率突然大幅增高或者过高的问题,不论是哪种数据库,我们都要首先查看一下操作系统上有没有非数据库的进程使用了过高的CPU资源,这个使用TOP工具就可以实现了,不要因为SWAP、大规模CACHEDROP等操作引发的CPU使用率突
现在基于PG或者脱胎于PG的国产数据库越来越多,再加上PG社区版用户也在快速增长,因此多学点PG的知识对于DBA今后的转型来说,还是挺有用的,因此这几天我们多讨论一些PG相关的问题。昨天我们讨论了PGIO优化方面的问题,今天我们就来讨论一个核CPU有关的问题。今天的议题是,如果PG数据库服务器的CPU使用率突然升高,我们应该从哪几个方面去分析。如果遇到数据库服务器CPU使用率突然大幅增高或者过高的问题,不论是哪种数据库,我们都要首先查看一下操作系统上有没有非数据库的进程使用了过高的CPU资源,这个使用TOP工具就可以实现了,不要因为SWAP、大规模CACHEDROP等操作引发的CPU使用率突
1.键值对存储数据库键值对存储数据库是NoSQL数据库中的一种类型,也是最简单的NoSQL数据库。键对值对存储数据库中的数据是以键值对的形式来存储的。常见的键值对存储数据库有Redis、TokyoCabinet/Tyrant、Voldemort以及OracleBDB等数据库。键值对存储数据库的结构示意图如下。键值对存储数据库的结构实际上是一个映射,即Key是查找每条数据的唯一标识符,Value是该数据实际存储的内容。键值对存储数据库结构是采用哈希函数来实现键到值的映射,当查询数据时,基于Key的哈希值会直接定位到数据所在的位置,实现快速查询,并支持海量数据的高并发查询。应用场景1:会话储存场景
1.键值对存储数据库键值对存储数据库是NoSQL数据库中的一种类型,也是最简单的NoSQL数据库。键对值对存储数据库中的数据是以键值对的形式来存储的。常见的键值对存储数据库有Redis、TokyoCabinet/Tyrant、Voldemort以及OracleBDB等数据库。键值对存储数据库的结构示意图如下。键值对存储数据库的结构实际上是一个映射,即Key是查找每条数据的唯一标识符,Value是该数据实际存储的内容。键值对存储数据库结构是采用哈希函数来实现键到值的映射,当查询数据时,基于Key的哈希值会直接定位到数据所在的位置,实现快速查询,并支持海量数据的高并发查询。应用场景1:会话储存场景
现在PG数据库在用户侧的应用场景日益丰富,很多国产数据库也与PG开源项目有着很深的渊源,在使用过程中的一些基本运维规则也与PG开源数据库十分近似。今天我们从操作系统的角度来看一看PG数据库日常运维中需要关注的一些问题。目前大多数用户侧的PG数据库规模都比较小,应用系统也都不太复杂,因此大多数情况下,数据库日常运维的难度并不大,不像Oracle这样复杂的数据库系统,遇到些问题还不太容易处理。在PG数据库日常运维上,只要关注下总会话数,活跃会化,并发访问,TOPSQL,一般也就够用了。反而在操作系统层面,需要多加关注。在这种情况下,操作系统的各种资源是否充足是决定数据库运行是否稳定的十分重要的因