我想将我的 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。有谁知道如何正确地做到这一点?
当我尝试在 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?
分发详情:
我正在尝试运行此查询来更改我的纬度坐标,该坐标以文本形式保存为双精度
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?谢谢!
如何获取列中具有最新值的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 的新手。我尝试在数据库中创建表。在 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)非空,^
怎么了?我该如何解决?
谢谢你。
我将如何在 postgres 中做到这一点:
假设我有一个 x 和 ay,我想显示所有可能的组合:
xx
yy
xy
yx
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 postgres 为我做这件事?
我对 PostgreSQL 中的查询计划器有疑问。我知道,这个规划器正在从 pg_statistics 获取数据,但是......谁能告诉我这个规划器是根据什么依据这些信息进行有效查询的?它是如何使用这些统计数据的?有没有比文档更好的描述整个过程?
我完全知道我的问题可能无法理解,但我真的不知道如何更容易地解释我的问题。如果您有问题,请提问。
我想更新表(我是 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) 我想在单独的服务器上设置一个测试数据库。生产数据库是 MS SQL Server,测试服务器是 *nix 机器,所以我想让测试服务器运行 PostgreSQL 或 MySQL。
数据集非常大;有些表有 30k+ 行,并且有很多表。
一些表根本没有太大变化,并且出于测试目的,许多表可以是空的,因此理想情况下,某种可以从数据库复制部分但不是全部记录的解决方案将是理想的。
除此之外,我可能只是在同一台服务器上制作生产数据库的测试副本,而不是将测试数据库服务器放在开发服务器上。假设测试数据库上的负载相对较小,在与生产服务器相同的服务器上托管测试数据库是否存在潜在问题?
如果我从生产环境复制 - > 在 MS SQL Server 中进行测试,是否可以设置某种自动化脚本来选择性地仅复制某些记录(例如,仅某些表中的最后 1k 行,而其他表中没有,以及选定的几行中的所有行)?有没有办法将其设置为选择性备份,然后使用该备份生成测试数据库?
这里测试的只是代码,而不是数据库,甚至不是数据库的接口。代码 (Django) 使用 ORM,因此使用哪个 RDBMS 并不重要。我很乐意假设,如果我调用.save()它,无论数据库如何,它都可以工作;我担心的是我是否正确设置了表单、实用程序函数、数据导入等,所有这些都是通过 Django 的关系模型系统抽象出来的,该系统已被证明对 RDBMS 完全无动于衷(实际上,在一个的生产版本中)我的网站同时从 MySQL 和 SQL Server 数据库中提取(一个包含旧数据)。
postgresql ×10
mysql ×2
performance ×2
backup ×1
index ×1
index-tuning ×1
network ×1
optimization ×1
security ×1
sql-server ×1
statistics ×1
testing ×1
ubuntu ×1
update ×1