标签: postgresql

如何在 Postgres 中授予对 IP 范围的访问权限?

我想将我的 Postgres 数据库配置为由任何 IP 10.8.101.* 访问。我知道我必须在其中创建一个规则,pg_hba.conf但我不确定它应该是什么样子。我的 LAN IP 目前是 10.8.101.128 所以我认为这会起作用:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             10.8.101.0/128         md5
Run Code Online (Sandbox Code Playgroud)

但我收到了一个错误could not load pg_hba.conf。有谁知道如何正确地做到这一点?

postgresql security network

2
推荐指数
1
解决办法
8263
查看次数

无法在 Ubuntu 上安装 PostgreSQL 9.4

当我尝试在 Ubuntu 上安装 PostgreSQL 9.4.+ 时,它正在安装 9.3.9 版。我使用了以下命令:

sudo apt-get install postgresql postgresql-contrib
Run Code Online (Sandbox Code Playgroud)

然后我尝试了sudo apt-get install postgresql-9.4. 但这给了我一个错误,比如“找不到包”。

如何在 Ubuntu 上安装 9.4?

分发详情:

  • 分销商 ID: Ubuntu
  • 描述:Ubuntu 14.04 LTS
  • 发布: 14.04
  • 代号:可信赖

postgresql ubuntu postgresql-9.4

2
推荐指数
1
解决办法
731
查看次数

postgres:将 '' 转换为 NULL

我正在尝试运行此查询来更改我的纬度坐标,该坐标以文本形式保存为双精度

ALTER TABLE mapdata ALTER COLUMN lat TYPE double precision USING (lat::double precision);
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到此错误: invalid input syntax for type double precision: ""

我的假设是有一个空白条目并且 postgres 不知道将它视为双精度。我如何将其确定为 aNULL或者是否有另一种方法可以将我的lat专栏变成 a double precision?谢谢!

postgresql

2
推荐指数
1
解决办法
7162
查看次数

具有最新时间戳的行

如何获取列中具有最新值的TIMESTAMPZ行?是否需要索引?指数会改变策略吗?行为会因数据库而异吗(我使用的是 Postgres 9.4)?

我的应用程序记录来自数据馈送的数据。另一个过程无休止地查询以获取最新的最新条目。较旧的数据有时可能来自二手资料。所以最近插入的行通常但不一定是最新的数据。

我正在使用这种 SQL where when_is a TIMESTAMP WITH TIME ZONEcolumn:

SELECT *
FROM my_table_ 
ORDER BY when_ DESC
LIMIT 1
;
Run Code Online (Sandbox Code Playgroud)

此代码有效(如果数据中没有 NULL 值!)。但是可能有几百万行,并且每 10 秒查询一次,我很担心性能。

when_列上没有任何索引,此语句是否需要对所有行进行全面扫描?

添加索引会改变性能吗?Postgres 会自动扫描索引以定位最近的行,还是我必须做些什么才能进行索引扫描?

使用when_列上的索引,我是否应该更改此 SQL 以使用其他一些查询方法/策略?

有没有其他方法来收集新插入的行?我的主键使用UUID而不是SERIAL 类型,并且可能会在多个数据库实例之间联合数据,因此排除了检查不断增加的整数的可能性。

postgresql performance index index-tuning query-performance

2
推荐指数
1
解决办法
2万
查看次数

如何设计数据库?

请按步骤描述过程。你使用什么工具?

mysql postgresql database-design

1
推荐指数
1
解决办法
235
查看次数

PostgreSQL 创建表错误

我是 PostgreSQL 的新手。我尝试在数据库中创建表。在 psql 我写:

CREATE TABLE mail_user (
   user char(50) NOT NULL,
   domain char(50) NOT NULL,
   password char(50) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

错误:“用户”第 2 行或附近的语法错误:用户字符(50)非空,^

怎么了?我该如何解决?

谢谢你。

postgresql

1
推荐指数
2
解决办法
9452
查看次数

在 postgres 中显示 2 个字符的所有变体

我将如何在 postgres 中做到这一点:

假设我有一个 x 和 ay,我想显示所有可能的组合:

xx
yy
xy
yx
Run Code Online (Sandbox Code Playgroud)

我怎样才能让 postgres 为我做这件事?

postgresql

1
推荐指数
1
解决办法
346
查看次数

PostgreSQL 和查询计划器

我对 PostgreSQL 中的查询计划器有疑问。我知道,这个规划器正在从 pg_statistics 获取数据,但是......谁能告诉我这个规划器是根据什么依据这些信息进行有效查询的?它是如何使用这些统计数据的?有没有比文档更好的描述整个过程?

我完全知道我的问题可能无法理解,但我真的不知道如何更容易地解释我的问题。如果您有问题,请提问。

postgresql optimization statistics

1
推荐指数
1
解决办法
333
查看次数

更新具有数百万条记录的表时性能下降

我想更新表(我是 20-30 ),每个表都有数百万条记录。

问题是更新过程花费了太多时间,而且那时 CPU 使用率也很高。我想以一种在处理数据时不能使用太多 CPU 的方式来做。如果处理时间增加,那么这对我来说不是问题,但它应该使用有限的 CPU 资源来处理(更新)表。我使用 PostgreSQL 作为数据库,服务器操作系统是 Linux。

我的示例查询可以是这样的

UPDATE TEMP 
SET CUSTOMERNAME = 
  ( select customername from user where user.customerid = temp.customerid );
Run Code Online (Sandbox Code Playgroud)

postgresql performance update query-performance

1
推荐指数
2
解决办法
749
查看次数

从生产数据库(不同的机器和服务器)创建一个测试数据库

我想在单独的服务器上设置一个测试数据库。生产数据库是 MS SQL Server,测试服务器是 *nix 机器,所以我想让测试服务器运行 PostgreSQL 或 MySQL。

数据集非常大;有些表有 30k+ 行,并且有很多表。

一些表根本没有太大变化,并且出于测试目的,许多表可以是空的,因此理想情况下,某种可以从数据库复制部分但不是全部记录的解决方案将是理想的。

除此之外,我可能只是在同一台服务器上制作生产数据库的测试副本,而不是将测试数据库服务器放在开发服务器上。假设测试数据库上的负载相对较小,在与生产服务器相同的服务器上托管测试数据库是否存在潜在问题?

如果我从生产环境复制 - > 在 MS SQL Server 中进行测试,是否可以设置某种自动化脚本来选择性地仅复制某些记录(例如,仅某些表中的最后 1k 行,而其他表中没有,以及选定的几行中的所有行)?有没有办法将其设置为选择性备份,然后使用该备份生成测试数据库?

附加信息

这里测试的只是代码,而不是数据库,甚至不是数据库的接口。代码 (Django) 使用 ORM,因此使用哪个 RDBMS 并不重要。我很乐意假设,如果我调用.save()它,无论数据库如何,它都可以工作;我担心的是我是否正确设置了表单、实用程序函数、数据导入等,所有这些都是通过 Django 的关系模型系统抽象出来的,该系统已被证明对 RDBMS 完全无动于衷(实际上,在一个的生产版本中)我的网站同时从 MySQL 和 SQL Server 数据库中提取(一个包含旧数据)。

mysql postgresql sql-server testing backup

1
推荐指数
1
解决办法
2630
查看次数