![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
postgresql
snowwang928
数据库应用开发
展开
-
Postgres删除数据库
DROP DATABASE删除一个数据库drop database [if exists] name移除一个数据库,会移除该数据库的系统目录且包含数据的文件目录。它只能由数据库拥有者执行。drop database 不能在数据库事务块中执行。drop database 时,会出现以下错误:postgres=# drop database testdb;ERROR:database “testdb” is beging accessed by other usersDETAIL:There a原创 2020-06-10 10:15:28 · 1008 阅读 · 0 评论 -
Postgres中数据字典的用法(二)
4.pg_attributepostgres=# \d+ pg_attribute; 数据表 "pg_catalog.pg_attribute" 栏位 | 类型 | 可空的 | 存储 | 描述---------------+-----------+----------+----------+-----...原创 2020-03-05 17:42:30 · 872 阅读 · 0 评论 -
Postgres中数据字典的用法(一)
数据字典数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。postgresql中常用的数据字典视图有:pg_class,pg_stat_all_indexes,pg_index,information_schema,pg_attribute,pg_type,pg_constraint熟练运作这些数据字典视图,可以很快的得到数据库的数据表、索引、序列...原创 2020-03-05 17:18:57 · 3852 阅读 · 0 评论 -
Postgresql实战经验之alter table 开小差了
Postgresql实战经验之alter table 开小差了今天需要将一张有数据的表中一个字段varchar 类型转换为timestamp类型,但是pg的alter table 语句却开小差,出现了两种问题,翻了pg10.5中文手册、很多博客文档,做了对比实验,哎,可谓费了九牛二虎之力才解决问题。1.alter table 修改表定义(DDL操作)官方文档关于alter table 的用法...原创 2020-02-25 15:01:59 · 680 阅读 · 0 评论 -
Postgresql——WAL(Write-AHead Logging,预写式日志)
WAL——Write-AHead Logging,预写式日志1.目的:保证数据库的可靠性2.概述Write-AHead Logging即WAL是一套保证数据完整性的标准。简要地说,WAL中心概念是数据文件(这里涉及到表和索引)修改必须在这些动作被记录之后,即 描述这些修改操作的日志记录被刷到永久存储中。如果我们遵循这个过程,我们不需要在每次事务提交时刷数据页到磁盘,因我我们知道一旦发生崩溃,...原创 2020-01-11 17:44:38 · 268 阅读 · 0 评论 -
postgresql配置文件(二)
Postgresql的查询优化是基于代价的,代价是一个无量纲的值,不是绝对的性能指标,但可以作为比较各种操作代价时的相对性能代价。其值是在postgresql.conf配置的,# - Planner Cost Constants(计划器代价常量) -#seq_page_cost = 1.0 # 顺序扫描一个数据块cost=1,任意比例被测量random_page_cost = 4.0...原创 2019-12-05 15:06:29 · 140 阅读 · 0 评论 -
Postresql11源码——20191204查询分析器
语法解析器解析的语法由查询解析器进行语义分析,产生一棵查询树。查询解析器根节点在parsenode.h中定义的Query数据结构,该数据结构包含对应查询的元数据,比如命令类型(Select/Inert等),还包含一些叶子节点,叶子节点由列表组成,包含了与特定子句相对应的数据。/* * Query - * 解析分析器将所有的语句转换为一棵查询树,用于重写器和计划器下一步的处理过程中。...原创 2019-12-05 14:28:42 · 116 阅读 · 0 评论 -
Postresql11源码——语法解析器20191204
Makefile 打包文件,目录索引SearchProjectctrl+函数 查看想要祥读的源码语法解析器定义在parsenodes.h中的SelectStmt数据结构中,根据SQL语句会生成一棵语法解析树(parse tree)。详细的数据结构如下:typedef struct SelectStmt{ NodeTag type; /* * These fields ar...原创 2019-12-04 14:07:14 · 128 阅读 · 0 评论 -
postgresql查看数据库大小
查所有数据库\l查数据库大小 select pg_database_size('database');以KB,MB,GB的方式来查看数据库大小select pg_size_pretty('database');统计各数据库占用磁盘大小:SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) ...原创 2019-11-19 14:18:37 · 5805 阅读 · 0 评论 -
postgresql——数据库性能视图
select state,usename,datname,pid,wait_event_type,wait_event,substr(query ,1,50),xact_start, query_start,query from pg_stat_activity where state <>'idle';原创 2019-11-01 09:38:18 · 925 阅读 · 0 评论 -
Postgresql优化--子查询优化
项目在进行技术压测过程中,遇到很多sql优化的问题,这方面需要了解数据库索引原理,数据库机制,数据库查询优化器,推荐一本书为《Postgresql技术内幕》,开始读很晦涩,但一旦理论联系实际之后,就很好理解。不过,本人认为,数据库优化第一需要做的是要了解业务需求,在进行优化签,请开发人员先将sql的需求解说一下,然后,在理出业务逻辑,最后将业务场景和sql语句对应来看,进行优化,这样不仅能做到s...原创 2019-09-24 11:40:26 · 1527 阅读 · 1 评论 -
Postgresql中存储过程(plpgsql)两层for循环
项目中遇到测试,需要造4500数据,而且需要分机构和日期,一个机构一天30条数据,剩下的铺垫数据可以一个机构一天100w左右数据,这里,每次变换机构,日期,需要操作至少300次,想到用存储过程写一个函数进行首先,了解存储过程的语法:CREATE [ OR REPLACE ] FUNCTION name( [ [argmode] [argname]argtype[ { DEFAULT |...原创 2019-09-24 10:11:41 · 5844 阅读 · 0 评论 -
数据库备份pg_dump和pg_store——postgresql定时全量备份
数据库备份pg_dump和pg_store防止数据丢失第一道防线,数据备份。数据备份分逻辑备份和物理备份。2.逻辑备份pg提高pg_dump和pg_dumpall命令进行逻辑备份。pg_dumpall是正数据集群全部转存到一个脚本文件中,而pg_dumpl可以选择一个数据库或部分表进行备份。pg_dump可以在数据库正在使用时进行完整一致备份,它并不阻塞其他用户对数据库的访问(读或写)。...原创 2019-09-16 11:36:58 · 3255 阅读 · 0 评论