我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_statement
为none
似乎停止记录。
有什么我错过的配置吗?
postgresql performance logs postgresql-9.1 postgresql-performance
我需要创建一个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 位数字 …
我正在使用带有 *pg_trgm* 扩展名的 Postgresql 9.1。我需要在基于文本的字段上创建索引。我不需要全文搜索,我使用ILIKE
查询来进行搜索。
我会用pg_trgm
,但不具有太多的经验gin
和gist
索引。我会有很多INSERT
报表(每天约 15000 条)和很少的UPDATE
报表(可能是一周内 1 条或 2 条)。
gin
此类表上的索引的索引更新开销是多少?还是gist
更合适?