小编Fal*_*gel的帖子

log_min_duration_statement 设置被忽略

Postgresql 9.1在 Ubuntu 上运行。确切的 Postgresql 版本是9.1+129ubuntu1如我的包管理器所示。

我有 2 个正在使用的数据库,它们是从远程服务器使用的。

我希望记录执行时间较长的查询。所以我在/etc/postgresql/9.1/main/postgresql.conf文件中设置了以下参数

log_min_duration_statement = 10000
log_statement = 'mod'
Run Code Online (Sandbox Code Playgroud)

所以 Postgresql 会记录耗时超过 10 秒的查询。

但是当我reload配置 postgres 时,Postgresql 开始记录每个符合log_statement值的查询。我将持续时间设置为 100 秒以确保

log_min_duration_statement = 100000
Run Code Online (Sandbox Code Playgroud)

但是 Postgresql 会继续记录每个符合log_statement值的查询,而不管值是多少log_min_duration_statement

设置log_statementnone似乎停止记录。

有什么我错过的配置吗?

postgresql performance logs postgresql-9.1 postgresql-performance

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

为更长的数值创建序列

我需要创建一个database model包含一个字段来存储 20 位唯一值的字段。许多客户端将通过 API 使用它。

该值必须为 20 位长、数字且唯一。最好的方法似乎是创建一个自动增量big-int字段,但 big-int 支持的值最大为 9223372036854775807(19 位)。使用numeric(20,0)是无用的,因为尽管数字支持更大的值,但 Postgres 8.4 不允许我创建sequence并引发错误

CREATE SEQUENCE my_sequence_name INCREMENT BY 1 NO MINVALUE NO MAXVALUE START WITH 10000000000000000101;
Run Code Online (Sandbox Code Playgroud)

错误:值“10000000000000000101”超出 bigint 类型的范围

为了数据完整性,我必须在 POstgresql 中处理这个问题。处理这个问题的有效方法是什么?

我正在使用 Postgresql 8.4 和 Django 1.3

更新:我想最好澄清一下......我试图找到一种在 DBMS 中解决这个问题的方法。因此,除非我别无选择,否则将避免任何非数据库解决方案。休息是我的问题的原因:

我正在制作一个与银行通信以进行 3D 安全操作的 API。银行 API 需要一个20 位的唯一数字标识符来进行交易,所以我决定创建一个 ID 值,我可以将它用于银行 API 和将使用该表等的API

说明10000000000000000101是因为,银行 API 希望它是一个有效的20 位数字 …

postgresql auto-increment postgresql-8.4

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

很少更新和很多插入的索引方法

我正在使用带有 *pg_trgm* 扩展名的 Postgresql 9.1。我需要在基于文本的字段上创建索引。我不需要全文搜索,我使用ILIKE查询来进行搜索。

我会用pg_trgm,但不具有太多的经验gingist索引。我会有很多INSERT报表(每天约 15000 条)和很少的UPDATE报表(可能是一周内 1 条或 2 条)。

gin此类表上的索引的索引更新开销是多少?还是gist更合适?

postgresql index index-tuning gist-index gin-index

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