我需要在 PostgreSQL 中重新创建一个索引膨胀的索引。因为我需要索引在创建时可用,所以我不能使用 REINDEX。我将使用新名称重新创建索引,然后删除旧名称。有什么方法可以查看用于创建索引的 SQL 语句,以便我可以复制它?
如果我在 PostgreSQL 中同时创建了一个索引,我如何才能看到它何时完成?
我正在尝试重建索引以解决索引膨胀问题,我需要将旧索引保留一段时间直到新索引完成,所以我需要知道它何时完成。
这是 PostgreSQL 9.2/3ish
我通过ansible生成postgresql配置文件,并将它们放入/etc/postgresql/XX/main/conf.d/whatever.conf
. 我不小心犯了一个语法错误并破坏了我的 postgresql,需要手动修复。
是否有任何 postgresql 命令来验证文件是否是有效的 postgresql.conf 文件?
sudoers
文件可以通过 进行验证/usr/sbin/visudo -cf path/to/file
。有没有postgresql的东西?
我目前正在运行 Ubuntu 18.04 和 20.04,以及 PostgreSQL 10、12 等(是的,有几个不同的版本)。
我有一个 Django Web 应用程序,它在 MySQL InnoDB 数据库中存储数据。在 django admin 上有一个特定页面被大量访问,并且查询需要很长时间(~20 秒)。由于它是 Django 内部结构,因此无法更改查询。
有 3 个表A
,B
、 和C
。查询如下所示:
SELECT *
FROM A
INNER JOIN B ON (A.b_id = B.foo)
INNER JOIN C ON (B.foo = C.id)
ORDER BY A.id DESC
LIMIT 100
Run Code Online (Sandbox Code Playgroud)
一个简单的 join-3-tables 在一起。
这些id
字段是主键并具有索引。A.b_id
,B.foo
两者都有自己的索引。
然而,查询计划看起来不对,并说它没有在 B 上使用任何键(但它正在使用其他连接的键)。从阅读大量 MySQL 性能资料来看,理论上应该使用索引,因为它是各种可能“失败”的 const 连接。它说它必须扫描所有大约 1,200 行 B。
奇怪的是,我OPTIMIZE
在本地机器上编辑了每个查询并重新运行查询(使用SQL_NO_CACHE
),它快得多,0.02 秒与原始 20 秒。EXPLAIN
在同一个查询上给出了不同的、更合理的结果,表明它可以在每个查询上使用一个索引,并且它不必扫描整个批次。一位同事OPTIMIZE
在测试机器上用大致相同的数据(最近从加载的转储文件中重新创建)为每个人运行,并且还显示速度增加,并且解释合理。
所以我们在实时系统上运行它......它没有改变任何东西(速度或解释)。我重新创建了我的 …
如何使用 PostgreSQL (9.3) 找出表(或索引)所在的表空间?
PostgreSQL 的COPY
命令对于快速导入大量数据非常有用,并且数据必须采用数据类型的文本表示形式。
我正在导入大量数据,包括一timestamp
列,但它存储为“unix time”,即自纪元以来的秒数。我可以将其转换为ISO 8601(例如2010-01-01 00:00:00
,并且 PostgreSQL 接受 a 的转换timestamp
。它不接受原始纪元值整数。
是否可以让 postgres 接受纪元整数值并将其解释/转换为时间戳?这将使我的代码更简单(也许更快)。
这适用于psql
:
create temporary table test1 ( v1 timestamp );
copy test1 from stdin ;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> 2010-01-01 00:00:00
>> \.
COPY 1
Run Code Online (Sandbox Code Playgroud)
但这些没有:
copy test1 from stdin …
Run Code Online (Sandbox Code Playgroud) postgresql ×5
index ×3
concurrency ×1
copy ×1
deployment ×1
import ×1
innodb ×1
mysql ×1
optimization ×1
performance ×1
tablespaces ×1
timestamp ×1