在该postgresql.conf文件中,可以配置 的授权值ssl_cipher。但我找不到解释 ALL、ADH、LOW、EXP、MD5 和 STRENGTH 值对应的文档。
我猜MD5是指相应的MD5算法,但是其他值呢?我认为 LOW 不应该在生产环境中使用。
下面的两个查询中,哪个对 postgresql 来说最有效?并且在可读性等方面具有更好的风格。
区别在于语句的位置doctor.type != 'surgeon'
在 WHERE 子句中:
SELECT practice.name, doctor.name
FROM doctor
JOIN practice ON (doctor_code = code)
WHERE doctor.name LIKE '%son'
AND (doctor.type != 'surgeon');
Run Code Online (Sandbox Code Playgroud)
或者在 JOIN 子句中:
SELECT practice.name, doctor.name
FROM doctor
JOIN practice ON (doctor_code = code AND doctor.type != 'surgeon')
WHERE doctor.name LIKE '%son';
Run Code Online (Sandbox Code Playgroud) 尝试将 PostgreSQL 从 9.0 升级到 9.3。我使用pg_upgrade该模式是因为与其他选项(例如不使用 )--link相比,停机时间非常短。pg_dumpallpg_upgrade--link
升级并执行 SQL 语句后检查执行时间。第一次需要近30分钟,第二次以后需要15分钟。在 9.0 中执行的相同查询甚至不需要整整 45 秒。
行数:150000 条记录使用相同的 postgresql.conf 文件 vaccumdb all:升级后完成
我还需要配置其他东西来提高性能吗?
它没有在文档中说明任何pg_upgrade --link会降低性能的地方。
执行升级 ------------------ 分析新集群中的所有行 ok 冻结新集群上的所有行即可 从新的 pg_clog 中删除文件 ok 将旧的 pg_clog 复制到新服务器即可 为新集群设置下一个事务 ID 确定 从新的 pg_multixact/offsets 删除文件 ok 可以在新集群上设置最旧的 multixact ID 重置 WAL 存档即可 在新集群中设置 freezexid 和 minmxid 计数器即可 在新集群中恢复全局对象 ok 向新集群添加支持功能 ok 在新集群中恢复数据库模式 我的数据库 在新集群中设置 minmxid 计数器即可 可以从新集群中删除支持功能 将“.old”后缀添加到旧的 global/pg_control 即可 如果要启动旧集群,则需要删除 /opt/postgres/9.0/data/global/pg_control.old 中的“.old”后缀。 由于使用了“link”模式,旧集群无法安全 一旦新集群启动就开始。 …
我正在从 postgresql 命令行工具运行多个命令,其中一些命令是重复运行的。在 Bash 中,历史函数为每组连续的相同命令保留一个命令,似乎 postgresql 命令行默认情况下不这样做。例如,如果我运行命令“a”一次,然后运行命令“b”100 次,则必须向上滚动 100 次才能再次运行命令“a”。这是一种对用户不友好的处理方式。是否有一个选项可以从 postgresql 命令行获得替代的、类似 bash 的功能,其中历史记录中只记住唯一的命令?
我需要UPDATE这样使用:
update offer set (bank, bank_id) = (cost, gid)
from (
select cost, osm_points.gid from pgr_kdijkstraCost(
'SELECT gid as id, source, target, walk_cost as cost FROM ways',
offer.vertice_id,
array(select vertice_id from osm_points where super_type = 'bank'),
false,false)
join osm_points on id2 = vertice_id
where cost != -1
and osm_points.super_type = 'bank'
order by cost
limit 1)t ;
Run Code Online (Sandbox Code Playgroud)
但我得到以下信息:
错误:对表“offer”的 FROM 子句条目的引用无效
提示:表“offer”有一个条目,但不能从查询的这部分引用它。
先感谢您
我有一个看起来像这样的表:
| column | def |
| ------ | ---- |
| id | uuid |
| status | int |
| data | text |
Run Code Online (Sandbox Code Playgroud)
我想编写一个查询来复制一行(仅更改几列)并返回旧的(替换的)数据:
INSERT INTO tmp (status, data)
SELECT source.status, :data
FROM table AS source
WHERE id = :id
RETURNING id, source.data
Run Code Online (Sandbox Code Playgroud)
但RETURNING只能访问插入行中的值,是否有其他方法可以做到这一点?
我显然可以凭经验对此进行测试,但我发现在没有加载虚假数据的情况下EXPLAIN,Postgres 只是加载了包含表和扫描的完整内存页面。我也没有在文档中找到答案。
我的问题是,如果我在一个表上有一个索引,例如(colA, colB)一个包含where colA = 'something'Postgres的查询是否会使用这个索引,即使colB它不在查询中?假设不colA存在包含的索引。这个索引在查询执行中很有用是有道理的,但我很难确定地跟踪答案。
(Postgres v12.x)
如何在 PostgreSQL 行中存储办公时间,以便我可以计算办公时间。
例子:
我想将这些数据按行存储,以便我们可以为其开发接口。
然后需要一种使用行/规则来计算具体开放时间的方法。
在这种情况下,不同的时区并不重要。
我使用 PostgreSQL 12.6 版。但如果需要,我可以升级到更新的版本。
我想弄清楚PostgreSQL在一段时间内等待锁所花费的时间(在这段时间内,PostgreSQL服务了很多请求)。
PostgreSQL 系统表pg_locks显示一些信息。喜欢:
SELECT * FROM
pg_locks pl LEFT JOIN
pg_stat_activity psa
ON pl.pid = psa.pid;
Run Code Online (Sandbox Code Playgroud)
但是我仍然无法弄清楚它在锁上花费了多长时间。
我发现当我增加 PostgreSQL 的并发性时(例如,增加每个收集的并行工作线程数、最大并行工作线程数或其他一些配置),我的 100 秒多线程 TPC-C-like 工作负载变得更慢(即,更低的吞吐量)。所以我想弄清楚这是否是因为争用过多。
对于 SQL Server:如何在没有分析器的情况下查看查询花费了多长时间等待锁定?
我将 Postgres 13.3 与内部和外部查询一起使用,它们都只产生一行(只是一些关于行数的统计数据)。
我不明白为什么下面的 Query2 比 Query1 慢得多。它们基本上应该几乎完全相同,最多可能只有几毫秒的差异......
WITH t1 AS (
SELECT
(SELECT COUNT(*) FROM racing.all_computable_xformula_bday_combos) AS all_count,
(SELECT COUNT(*) FROM racing.xday_todo_all) AS todo_count,
(SELECT COUNT(*) FROM racing.xday) AS xday_row_count
OFFSET 0 -- this is to prevent inlining
)
SELECT
t1.all_count,
t1.all_count-t1.todo_count AS done_count,
t1.todo_count,
t1.xday_row_count
FROM t1;
Run Code Online (Sandbox Code Playgroud)
我只添加了一行:
WITH t1 AS (
SELECT
(SELECT COUNT(*) FROM racing.all_computable_xformula_bday_combos) AS all_count,
(SELECT COUNT(*) FROM racing.xday_todo_all) AS todo_count,
(SELECT COUNT(*) …Run Code Online (Sandbox Code Playgroud) postgresql ×10
concurrency ×1
cte ×1
date-math ×1
datetime ×1
functions ×1
index ×1
index-tuning ×1
join ×1
locking ×1
metadata ×1
parallelism ×1
performance ×1
sql-standard ×1
ssl ×1
subquery ×1
update ×1