POSTGRCSQL - 技术教程文章

PostgreSQL代码分析,查询优化部分,pull_ands()和pull_ors()【图】

PostgreSQL代码分析,查询优化部分。这里把规范谓词表达式的部分就整理完了,阅读的顺序例如以下:一、PostgreSQL代码分析,查询优化部分,canonicalize_qual二、PostgreSQL代码分析,查询优化部分,pull_ands()和pull_ors()三、PostgreSQL代码分析,查询优化部分,process_duplicate_ors*************************************************************************************************************************************...

科学地增加postgresql最大连接数【代码】

PG配置文件路径/etc/postgresql/9.3/main/postgresql.conf首先如何查看最大连接数This SQL will help youselect max_conn,used,res_for_super,max_conn-used-res_for_super res_for_normal from (select count(*) used from pg_stat_activity) t1,(select setting::int res_for_super from pg_settings where name=$$superuser_reserved_connections$$) t2,(select setting::int max_conn from pg_settings where name=$$max_conn...

postgresql 10 安装【代码】【图】

windows 安装第一步: 下载https://www.enterprisedb.com/download-postgresql-binaries将解压后的文件去掉一层放入 E:\Program Files, 程序目录为 E:\Program Files\pgsql第二步: 解压压缩包,配置环境变量新建数据目录 E:\postgresql\11\pgsql\data (这是数据库的数据存储文件夹)在 E:\Program Files\pgsql 新建一个名为env.vbs的文件on error resume next set sysenv=CreateObject("WScript.Shell").Environment("system")...

PostgreSQL统计每天的记录数量,没有记录就为0或返回null【代码】【图】

1. 需求统计下面事件类型的数量,没有此类型没有数据的返回为null,前端显示为0,请写出PostgreSQL的sql SQL语句是:select t.event_code as eventCode,t.event_name as eventName,s.eventNum from event_type t LEFTJOIN (select s.parent_codeas eventCode,count(id) as eventNumfrom article s where1=1groupby s.parent_code orderby eventNum desc) s on s.eventCode=t.event_code where t.parent_code=‘0‘显示结果:...

PostgreSQL学习手册(目录)

原文地址:http://www.cnblogs.com/stephen-liu74/archive/2012/06/08/2315679.html 事实上之前有很长一段时间都在纠结是否有必要好好学习它,但是始终都没有一个很好的理由说服自己。甚至是直到这个项目最终决定选用PostgreSQL时,我都没有真正意识到学习它的价值,当时只是想反正和其它数据库差不多,能用就行了。然而有一天晚上,自己也不知道为什么,躺在床上开始回想整个项目的实施过程,想着想着就想到了数据库选型这一问...

PostgreSQL备机checkpoint【代码】

数据库异常关闭时,数据库关闭时来不及或者没机会做checkpoint,则需要从上一个一致性检查的开始恢复。 ? ? PostgreSQL备机checkpoint是不能产生checkpoint WAL的,因为如果写这样类型的checkpoint的话,就会将接收的WAL打乱,那么日志将混乱,回放会出问题。? ? 那么问题来了,备机支持checkpoint吗?他的checkpoint怎么做的?? ? PostgreSQL为了缩短恢复时间,备机上也支持checkpoint,即CreateRestartPoint。但是其pg_control文...

构建基于CentOS 7.6 的PostgreSQL 11.6 镜像【代码】

案例说明: 1)CentOS 7.6的基础镜像上创建PostgreSQL 11.6镜像。2)创建PostgreSQL 11.6 镜像的Dockerfile。3)下载PostgreSQL 11.6的源码包和Dockerfile存放在相同的目录下 1、启动docker服务[root@node1 soft]# systemctl start docker[root@node1 soft]# systemctl status docker ● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor pr...

PostgreSQL服务端监听设置及client连接方法

背景介绍: PostgreSQL服务端执行在RedHat Linux上,IP为:192.168.230.128 client安装在Windows XP上, IP为:192.168.230.1配置方法: 1. 改动服务端/opt/postgresql/data/postgresql.conf文件,将#listen_address=‘localhost‘改成listen_address=‘*‘ 2. 改动/opt/postgresql/data/gp_hba.conf文件在当中添加client的ip,例如以下,注意最后一行:# TYPE DATABASE USER CIDR-ADDRESS METHOD# "local" i...

java web中向postgreSQL插入当前时间【代码】

方式1 常用插入方式Timestamp currentTime= new Timestamp(System.currentTimeMillis()); String sql = "INSERTINTO message(date_create) VALUES (" + "‘" + currentTime + "‘" + ");";方式2 使用 占位符Timestamp currentTime= new Timestamp(System.currentTimeMillis()); String sql = "INSERTINTO message( date_create) VALUES (?);"; PreparedStatement pst = conn.prepareStatement(sql,Statement.RETURN_GENERATE...

PostgreSQL 9.5.4数据库快速INSERT大量数据研究【代码】

PostgreSQL 9.5.4数据库快速INSERT大量数据研究背景在一些应用场景中,需要向Abase数据库中快速装入大量的数据,比如数据库迁移,SQL日志分析等。在PG上快速插入数据有几种方案,每种方案的效率怎么样?如何调优能加快的数据装载?场景设定SQL日志分析是一个采集JDBC日志、分析SQL、发送分析结果工具。在分析阶段,需要解析大量的JDBC日志,并把解析后的结构化结果装入数据库供后续处理。以分析阶段为实验场景,以解析JDBC日志(多个...

PostgreSQL Replication之第三章 理解即时恢复(2)

3.2 归档事务日志看过图片之后,我们可以看看如何使这些东西进入工作状态。当谈到及时归档时,您需要做的第一件事是归档XLOG。PostgreSQL通过postgresql.conf提供了所有与归档相关的选项。让我们一步一步地看,要启动归档需要在postgresql.conf中做什么:1. 首先,您应该把archive_mode设置为 on。2. 第二步,您应该配置您的归档命令。归档命令是一个简单的带有两个参数的shell命令:1. %p: 这是一个表示应该被归档的的XLOG的占位符...

linux postgresql 离线安装记录

由于服务器无法连接外网,通过yum指令来安装PostgreSQL的可能性是零,所以需要离线安装操作。下载离线 rpm 包:https://yum.postgresql.org/rpmchart/由于几个rpm彼此之间的依赖关系,所以我安装的先后顺序是:rpm -ivh example.rpm1. postgresql11-libs-11.8-1PGDG.rhel7.x86_64.rpm2. postgresql11-11.8-1PGDG.rhel7.x86_64.rpm3. postgresql11-server-11.8-1PGDG.rhel7.x86_64.rpm4. postgresql11-contrib-11.8-1PGDG.rhel7.x86...

PostgreSQL编译安装【代码】

获取源码 略编译安装对于性能型的软件,我们采用编译的方式进行安装。安装依赖yum install -y systemtap-sdt-devel perl-ExtUtils-Embed pam-devel libxml2-devel libxslt-devel python-devel编译./configure --prefix=/opt/pgsql-9.3.2 --with-perl --with-python --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt --enable-thread-safety --with-wal-blocksize=16 --with-blocksize=16 --enable-dtrace -...

PostgreSQL之Buffer Cache【代码】【图】

缓冲区高速缓存(Buffer Cache)位于服务器的共享内存中,并且所有进程均可访问。在读取或更新数据时,进程将页面读入缓存。当页面位于缓存中时,我们在RAM中使用它并保存数据到磁盘。 当一个进程需要读取一个页面时,它首先尝试通过哈希表在Buffer Cache中找到它,如果在Buffer Cache中找不到所需的页面。在这种情况下,需要将页面从磁盘读取到某个缓冲区中。 PostgreSQL有一个扩展,使我们能够查看缓冲区高速缓存的内部。安装扩...

postgresql数据迁移

postgresql从库故障准备新库1,创建用户[root@localhost home]# userdel postgres[root@localhost home]# groupdel postgresmkdir /home/mydbchown -R postgres:postgres /home/mydb2,解压安装包[root@localhost home]## tar -xvf postgres/postgresql-8.1.4.tarcd postgres/postgresql-8.1.4编译安装: ./configure --prefix=/usr/local/pgsql -localstatedir=/home/mydb $ ./configure --prefix=/usr/local/pgsql --with-pgco...

Measuring PostgreSQL Checkpoint Statistics【代码】

Checkpoints can be a major drag on write-heavy PostgreSQL installations. The first step toward identifying issues in this area is to monitor how often they happen, which just got an easier to use interface added to the database recently.  Checkpoints are periodic maintenance operations the database performs to make sure that everything it’s been caching in memory has been synchronized with the ...

mac 快速启动postgresql【代码】

brew install postgresql mkdir -p /usr/local/var/postgres initdb /usr/local/var/postgres/data mkdir -p /usr/local/var/log/postgres pg_ctl start -D /usr/local/var/postgres/data -l /usr/local/var/log/postgres/log.log export PGDATA=/usr/local/var/postgres/data原文:http://my.oschina.net/u/923974/blog/504440

Postgresql_常用的几个日期处理方法

虽然不常用,但是找的时候挺不好找的,那就记录下来。1.两个日期之间的天数(包括两头的日期,所以+1)select extract(day from(age(to_date(‘2014-01-02‘,‘yyyy-mm-dd‘),to_date(‘2014-01-01‘,‘yyyy-mm-dd‘))))+12.根据两个日期,生成之间的日期 select to_date(to_char(generate_series(‘2014-01-01‘::date,‘2014-01-02‘, ‘1 days‘),‘yyyy-mm-dd‘),‘yyyy-mm-dd‘)date原文:http://blog.csdn.net/ls_man/articl...

PostgreSQL 11 install with jit on CentOS 7.5 X64

1.system infoCentOS Linux release 7.5.1804 X86_64 2.disable selinux and firewalldinstall require os packages-# yum install -y epel-release-# yum install -y gcc gcc-c++ readline-devel zlib-devel libicu-devel4.llvm install1).cmake-# wget https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz-# tar zxvf cmake-3.11.4.tar.gz-# ./configure-# make-# make install2).llvm-# wget http://releases.llvm.org/7.0.0/ll...

PostgreSQL之windows下的安装和使用【图】

一、下载从http://www.enterprisedb.com/products-services-training/pgdownload#windows 选择你要下载的版本,我是在win7 64位下操作的,下载的是9.4.4版本http://get.enterprisedb.com/postgresql/postgresql-9.4.4-3-windows-x64.exe二、安装双击运行,如下图:选择next,如下图:选择安装目录(我选择的是默认的,也可以自行选择安装路径),选择next:选择数据目录(我选择的是默认的,也可以自行选择安装路径),选择next:设...

PostgreSQL 12.2 公开课及视频及PGCE认证(第10期)(CUUG)(2020年)

十、PostgreSQL 12.2 IN/EXISTS/ANY/ALL/JOIN百花争鸣 1、IN/EXISTS/ANY/ALL哪个好?2、相同业务IN/EXISTS/ANY/ALL/INNER JOIN解决方案对比。3、相同业务NOT (IN/EXISTS/ANY/ALL)解决方案对比。4、数据量的增长对性能带来的严重影响如何解决?5、我们是否应该意识到更多的复杂性?6、给开发人员的建议!这是针对PostgreSQL数据库编写SQL查询的开发人员提出的最常见的问题之一。数据量的增长对性能带来的挑战是非常残酷的,我们该如何应...

PostgreSQL 安装

http://www.csdn.net/article/2012-08-23/2809053-PostgreSQL-is-Our-New-Default一、安装(以root身份进行)1、检出最新的postgresql的yum配置从http://yum.pgsqlrpms.org/reporpms/repoview/pgdg-centos.html然后根据版本选择需要的rpm后执行下列命令rpm -Uvh http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm2、安装或者升级postgresql-libsyum upgrade postgresql-libs3、安装postgresqlyum install postgre...

PostgreSQL教程(十七):客户端命令(1)

零、口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建文件名为 .pgpass的口令文件,这样就可以在我们连接Postg...

postgresql:解决in的效率问题【代码】【图】

数据库中进行表的链接查询比使用in的速度是要快的,怎样在程序中避免使用in? postgresql提供了regexp_split_to_table这个函数,我们可以借助该函数避免使用in带来的问题 使用方法:   有表A,表A中有字段Id  使用in查询:select * from A where id in ( xxx,xxxx,xxxx)  替换后写法:select A.* from (select regexp_split_to_table(‘xxxx,xxx‘,‘,‘ ) as ids) as tt join A on tt.ids=A.id 分割方式随意,上面的替换...

PostgreSQL Replication之第一章 理解复制概念(2)【图】

1.2不同类型的复制 现在,您已经完全地理解了物理和理论的局限性,可以开始学习不同类型的复制了。1.2.1 同步和异步复制我们可以做的第一个区分是同步复制和异步复制的区别。这是什么意思呢?假设我们有两台服务器,希望从一台服务器(the master)复制数据到第二台服务器(the slave)。下图说明了同步和异步复制的概念:我们可以使用一个简单的事务如下所示:BEGIN:INSERT INTO foo VALUES (‘bar‘);COMMIT;在异步复制的情况下,...

PostgreSQL 与 MySQL 相比,优势何在?【转】

最近看到PostgreSQL话题比较多,就搜索了一下它与mysql的对比作者:知了链接:http://www.zhihu.com/question/20010554/answer/74037965来源:知乎一、PG相对于MySQL的优势:1、在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨;2、存储过程的功能支持要比MySQL好,具备本地缓存执行计划的能力;3、对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强;4、PG主表采用堆表存放,MySQL采用索引组...

postgresql+redis缓存

PostgreSQL 与基友们的故事之 - Redis 在PostgreSQL中直接读写redis。好处多多,可以降低应用层设计的复杂度,减少交互次数,降低RT。应用场景举例:.1. 使用redis作为PostgreSQL的二级缓存, 提升数据库的性能。例如在生产中有多台redis主机或集群,使用redis扩展PG的二级缓存能力,减少对IO的需求。这个完全可以做成触发器形式的,数据插入或更新的时候,同时插入或更新到redis。删除的时候,从redis删除。用来做二级缓存时,更新...

PostgreSQL 创建表分区

创建表分区步骤如下: 1. 创建主表 CREATE TABLE users ( uid int not null primary key, name varchar(20)); 2. 创建分区表(必须继承上面的主表)CREATE TABLE users_0 ( check (uid >= 0 and uid< 100) ) INHERITS (users); CREATE TABLE users_1 ( check (uid >= 100)) INHERITS (users); 3. 在分区表上建立索引,其实这步可以省略的哦CREATE INDEX users_0_uidindex on users_0(uid); CREATE INDEX users_1_uidindex on users_1...

PostgreSQL存储过程返回数据集实例【代码】【图】

这里用一个实例来演示PostgreSQL存储过程如何返回数据集.1 首先准备数据表<pre name="code" class="sql">//member_category create table member_category(id serial, name text, discount_rate real, base_integral integer); alter table member_category add primary key(id); alter table member_category add check(name<>'');//member create table member(id serial, member_num text, name text, category_id integer, acc...

Kali2017 Metasploit连接postgresql数据库【代码】

msfdb:msf数据库管理命令 1、查看msf数据库连接状态msf > db_status [*] postgresql selected, no connection    //未连接 2、msfdb命令msf > msfdb      //msfdb可以在命令行直接使用 [*] exec: msfdbManage a metasploit framework databasemsfdb init # initialize the database          //初始化数据库msfdb reinit # delete and reinitialize the database  //清空配置重新初始化数据库msfdb de...