PostgreSQL

Postgresql查询效率计算初探

摘要 关系数据库很重要的一个方面是查询速度。查询速度的好坏,直接影响一个系统的好坏。 查询速度一般需要通过查询规划来窥视执行的过程。 查询路径会选择查询代价最低的路径执行。而这个代价是怎么算出来的呢。 主要关注的参数和表 参数:来自postgresql.conf文件,可以通过show 来查看 seq_page_cost = 1.0 # measured on an arbitrary scale ... »

PostgreSQL使用IP无法连接的解决方法

PostgreSQL使用IP无法连接的解决方法

PG数据库ip地址无法连接,问题提示:SSL off 修改文件“pg_hba.config” 位于D:\Program Files\PostgreSQL\9.2\data路径下 或者使用内置可视化软件>工具栏>服务器配置>pg_hba.config pg_hba.config配置 IP地址:网关/24 配置保存,重新连接 下面是其他网友的补充: 众所周知,Postgres 8.1... »

PostgreSQL分区表(partitioning)应用实例详解

PostgreSQL分区表(partitioning)应用实例详解

前言 项目中有需求要垂直分表,即按照时间区间将数据拆分到n个表中,PostgreSQL提供了分区表的功能。分区表实际上是把逻辑上的一个大表分割成物理上的几小块,提供了很多好处,比如: 1、查询性能大幅提升 2、删除历史数据更快 3、可将不常用的历史数据使用表空间技术转移到低成本的存储介质上 那么什么时候该使用分区表呢?官方给出的指导意见是:当表的大小超过了数据库服务器的物理内存大小则应当使用分区表... »

PostgreSQL教程(十三):数据库管理详解

一、概述:     数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言,如pg_database,是属于整个集群的。更准确地说,数据库是模式的集合,而模式包含表、函数等SQL对象。因此完整的对象层次应该是这样的:服务器、数据库、模式、表或其他类型的对象。   &nbs... »

PostgreSQL中调用存储过程并返回数据集实例

PostgreSQL中调用存储过程并返回数据集实例

这里用一个实例来演示PostgreSQL存储过程如何返回数据集。 1、首先准备数据表 复制代码 代码如下: //member_category create table member_category(id serial, name text, discount_rate real, base_integral integer); alter table member_category add p... »

修改一行代码提升 Postgres 性能 100 倍

修改一行代码提升 Postgres 性能 100 倍

在一个(差)的PostgreSQL 查询中只要一个小小到改动就能把查询时间从20s缩减到0.2s。从最简单的学习使用 EXPLAIN ANALYZE开始,到学习使用 Postgres community 大量学习时间的投入将有百倍时间到回报。大部分的时间花费在 Postgres和 OS 上, 只有很少部分用于I/O . 在最低的层面,这些查询看起来就像是这些CPU利用率的峰值。 »

postgresql分页数据重复问题的深入理解

问题背景 许多开发和测试人员都可能遇到过列表的数据翻下一页的时候显示了上一页的数据,也就是翻页会有重复的数据。 如何处理? 这个问题出现的原因是因为选择的排序字段有重复,常见的处理办法就是排序的时候加上唯一字段,这样在分页的过程中数据就不会重复了。 关于这个问题文档也有解释并非是一个bug。而是排序时需要选择唯一字段来做排序,不然返回的结果不确定 排序返回数据重复的根本原因是什么呢? 经常优化sq... »

Abp.NHibernate连接PostgreSQl数据库的方法

Abp.NHibernate连接PostgreSQl数据库的方法

Abp.NHibernate动态库连接PostgreSQl数据库,供大家参考,具体内容如下 初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用abp.NHibernate类库操作PostgreSQL数据的相关方法做一记录,不足之处让评论指点扔砖。 话不多说,直接开干: 1、vs 新建一个项目,(窗体或者控制台程序或者测试程序) 2、NuGet 获取... »

Mybatis调用PostgreSQL存储过程实现数组入参传递

Mybatis调用PostgreSQL存储过程实现数组入参传递

前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: 复制代码 代码如下:CREATE OR REPLACE FUNCTION “public”.”func_arr_update”(ids _int4)… 如上所示... »

PostgreSQL教程(十二):角色和权限管理介绍

PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。     一、数据库角色:     1. 创建角色:  复制代码 代码如下:   &... »

初识PostgreSQL存储过程

什么是存储过程, 百度百科是这么定义的:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 Postgresql的存储过程语法结构如下... »

PostgreSQL 查看数据库,索引,表,表空间大小的示例代码

一、简介 PostgreSQL 提供了多个系统管理函数来查看表,索引,表空间及数据库的大小,下面详细介绍一下。 二、数据库对象尺寸函数 函数名 返回类型 描述 pg_column_size(any) int 存储一个指定的数值需要的字节数(可能压缩过) pg_database_size(oid) bigint 指定OID的数据库使用的磁盘空间 pg_database_size(name) bigi... »

PostgreSQL数据库中窗口函数的语法与使用

一个窗口函数在一系列与当前行有某种关联的表行上执行一种计算。但是窗口函数并不会使多行被聚集成一个单独的输出行,这与通常的非窗口聚集函数不同。PARTITION BY 子句将查询的行分组成为分区, 窗口函数会独立地处理它们。PostgreSQL 中的聚合函数也可以作为窗口函数来使用除了这些内置的窗口函数外,任何内建的或用户定义的通用或统计聚集都可以作为窗口函数。 »

PostgreSQL更新表时时间戳不会自动更新的解决方法

PostgreSQL更新表时时间戳不会自动更新的解决方法,具体如下 操作系统:CentOS7.3.1611_x64 PostgreSQL版本:9.6 问题描述 PostgreSQL执行Insert语句时,自动填入时间的功能可以在创建表时实现,但更新表时时间戳不会自动自动更新。 在mysql中可以在创建表时定义自动更新字段,比如 : create table ab ( id int, changet... »

这里写图片描述

Linux CentOS 7源码编译安装PostgreSQL9.5

之前的博客记录了通过rpm包的形式安装PostgreSQL 9.3(Linux CentOS 7 安装PostgreSQL 9.3(发行版本) ),本篇blog将记录一下通过源码编译的形式安装PostgreSQL 9.5。 下载 在postgresql的官方即可找到源码文件目录,地址如下:https://www.postgresql.org/ftp/source/,在下载列表中根据需求选择版本,如... »

PostgreSQL教程(十一):服务器配置

一、服务器进程的启动和关闭:     下面是pg_ctl命令的使用方法和常用选项,需要指出的是,该命令是postgres命令的封装体,因此在使用上比直接使用postgres更加方便。 复制代码 代码如下:     pg_ctl init[db] [-D DATADIR] [-s] [-o “OPTIONS”] &n... »

SQL Server数据迁移至PostgreSQL出错的解释以及解决方案

问题重现: 1、PG客户端: postgres=# create table text_test (id int,info text); CREATE TABLE postgres=# insert into text_test values (1,E'\0x00'); ERROR: invalid byte sequence for encoding "UTF8": 0x00 2、SQL Ser... »

PostgreSQL 角色与用户管理介绍

PostgreSQL 角色与用户管理介绍

一、角色与用户的区别角色就相当于岗位:角色可以是经理,助理。用户就是具体的人:比如陈XX经理,朱XX助理,王XX助理。在PostgreSQL 里没有区分用户和角色的概念,”CREATE USER” 为 “CREATE ROLE” 的别名,这两个命令几乎是完全相同的,唯一的区别是”CREATE USER” 命令创建的用户默认带有... »

Ubuntu PostgreSQL安装和配置的介绍

Ubuntu PostgreSQL安装和配置的介绍

1、安装 使用如下命令,会自动安装最新版,这里为9.5 sudo apt-get install postgresql 安装完成后,默认会: (1)创建名为”postgres”的Linux用户 (2)创建名为”postgres”、不带密码的默认数据库账号作为数据库管理员 (3)创建名为”postgres”的表 安装完成后的一些... »

Ubuntu中卸载Postgresql出错的解决方法

前言 最近在卸载PostgreSQL数据库的出错了,无奈只能一步步的进行排查分析解决,下面将解决的过程分享出来,给同样遇到这个问题的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧。 出错输出: Removing postgresql-9.1 (9.1.18-0ubuntu0.12.04) ... /var/lib/dpkg/info/postgresql-9.1.prerm: 9: .: ... »

Linux CentOS 7安装PostgreSQL9.3图文教程

Linux CentOS 7安装PostgreSQL9.3图文教程

如题,本篇blog记录一下在Linux CentOS 7中安装PostgresSQL的整个过程以及数据库配置等,在Linux系统中,PostgreSQL的安装方式分两种,分别是: 1、二进制安装包安装 2、源码编译安装 由于我们没有什么特殊需求所在在此选择较为简单的方式——二进制安装包安装,二进制包安装的方法一般都是通过不同发行版本的Linux下的包管理器进行的,例如Debian和Ubuntu下是... »

PostgreSQL教程(十):性能提升技巧

一、使用EXPLAIN:     PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的查询规划。     PostgreSQL中生成的查询规划是由1到n个规划节点构成的规... »

在windows下手动初始化PostgreSQL数据库教程

环境:win7 64 sp1 PG:9.3.5 1、创建用户postgres,密码同样是postgres: net user postgres postgres /add 2、在数据库根目录下建立data目录: C:\Program Files\PostgreSQL\9.3>md data 3、去掉administrator对data目录的权限: C:\Program Files\Postg... »

PostgreSQL中的OID和XID 说明

oid: 行的对象标识符(对象 ID)。这个字段只有在创建表的时候使用了 WITH OIDS ,或者是设置了default_with_oids 配置参数时出现。 这个字段的类型是 oid (和字段同名)。 例子: 复制代码 代码如下: CREATE TABLE pg_language ( lanname name NOT NULL, lanowner oid NOT NULL, lanispl b... »

PostgreSQL实现批量插入、更新与合并操作的方法

PostgreSQL实现批量插入、更新与合并操作的方法

前言 就在 2019 年 1 月份微软收购了 PostgreSQL 数据库的初创公司 CitusData, 在云数据库方面可以增强与 AWS 的竟争。AWS 的 RDS 两大开源数据库就是 MySQL(Aurora 和 MariaDB 是它的变种) 和 PostgreSQL。 而 PostgreSQL 跳出了普通关系型数据库的类型约束,它灵活的支持 JSON, JSONB, XML, 数组等类型。... »

Page 1 of 6123»