标签: postgresql

我可以让一张表成为另一个表的“别名”或“符号链接”吗?

我有两个结构相同的表,A 和 B。编写了某个应用程序,以便它始终将相同的数据写入两个表。

在与同事讨论节省驱动器空间的潜力后,我想知道 mysql 或 postgresql 是否能够在表上创建另一个表的“别名”或“符号链接”。

我希望行为与软文件符号链接的行为非常相似;从符号链接本身或其目标读取将产生相同的输出,写入任一将更新目标。

mysql postgresql

10
推荐指数
2
解决办法
8075
查看次数

pgbouncer 中 session pool_mode 的目的是什么?

由于在这种模式下 pgbouncer 为每个入站连接创建出站连接,因此在我看来 pgbouncer 不能作为池化器工作。这只是1对1的映射。

我哪里错了?

postgresql pgbouncer connection-pooling

10
推荐指数
1
解决办法
7267
查看次数

PostgreSQL:shared_buffers 的推荐大小

我对 PostgreSQL 比较陌生。一个月前,我开始将一些 MySQL 数据库迁移到 PostgreSQL。

我正在寻找有关配置文件的正确内存值的帮助。

目前,我有一个适度的专用服务器(2GB 的 RAM)在 Linux 下运行 Apache、MySQL 和 PostgreSQL。MySQL 主数据库的大小大约是 PostgreSQL 主数据库的 3 倍,数据流量也是如此。

我仍然有 PostgreSQL 的默认配置文件,参数为 shared_buffers = 32MB. 我假设我应该增加这个值,但我不想惩罚其他数据库。我读过一些关于将 25% 的物理可用内存专用于 PostgreSQL 的内容,但我不确定这一点。

新数据库包含七个表,最大的一个大约有 3 MM 行。该机器目前的流量较低(每天服务约 10000 ~ 20000 个选择),但这些值预计会增长。

我正在考虑将 shared_buffers 增加到 256MB,但我想听听对这个 RDBMS 有更多经验的用户的一些意见。

postgresql performance configuration

10
推荐指数
1
解决办法
2678
查看次数

在 pg_activity 中使用“显示事务隔离级别”获取多个查询

我在生产中使用 PostgreSQL 服务器。

当我发起一个查询时

select * from pg_stat_activity
Run Code Online (Sandbox Code Playgroud)

在我的服务器上,我收到了 98% 的查询,例如

SHOW TRANSACTION ISOLATION LEVEL
Run Code Online (Sandbox Code Playgroud)

我的服务器只接受 100 个连接,所以我无法继续进行。

为什么会这样?如何阻止所有这些查询?

postgresql postgresql-9.2

10
推荐指数
1
解决办法
4671
查看次数

带有 IN() 参数的 PostgreSQL PREPARE 查询

我正在尝试从 PHP 准备一个查询,例如:

pg_prepare($con, "prep", "select * from test where tid in ($1)");
Run Code Online (Sandbox Code Playgroud)

然后执行它:

$strpar = "3,4,6,8,10";
pg_execute($con, "prep", array($strpars));
Run Code Online (Sandbox Code Playgroud)

问题是我无法传递一系列构建为 prepare 期望固定数量参数的值。有没有办法使参数动态?

postgresql prepared-statement php array

10
推荐指数
1
解决办法
5424
查看次数

Postgres <-> 运算符有什么作用?

我正在阅读有关物化视图Postgres 文档,在一个示例中,他们使用以下内容:

SELECT word FROM words ORDER BY word <-> 'caterpiler' LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

我试图在我自己的数据库上运行类似的查询,但出现错误。

[42883] ERROR: operator does not exist: character varying <-> unknown
Run Code Online (Sandbox Code Playgroud)

我(可能)不需要使用运算符,但我只是好奇它的作用。

注意事项

  • 我正在运行与文档相同的版本(9.3)
  • 我确实尝试过谷歌搜索这个问题,但<->即使你用引号将它括起来,谷歌也会忽略它。

postgresql operator

10
推荐指数
1
解决办法
6365
查看次数

PostgreSQL GRANT ALL 在多个表上使用 LIKE

我有 100 多个名为 public.test_* 的表

我怎样才能轻松地一次GRANT ALL访问所有这些表的用户测试?

我试过:

GRANT ALL ON TABLE public.test_* TO test;
Run Code Online (Sandbox Code Playgroud)

但它不起作用......

postgresql permissions dynamic-sql ddl postgresql-9.3

10
推荐指数
2
解决办法
6578
查看次数

我应该为云托管的 PostgreSQL 数据仓库获得多少 RAM?

我正在考虑将当前的 PostgreSQL 数据仓库迁移到具有 SSD 存储和 RAM 作为主要大小变量之一的云主机。我们目前处理的最庞大的数据将存在于每月分区表中。每个月大约有 70GB 的索引(40-ish w/o)。数据可能主要是定期批量加载,然后由 5 名研究人员组成的小团队访问。

我一直在尝试在此站点上搜索有关规范 RAM 的建议,我发现的所有内容是:

  • 适合整个数据库(>1TB,不现实)
  • 更多更好

是否应该有足够的 RAM 来至少将整个索引 (16GB) 加载到 RAM?我还需要提供其他详细信息吗?

postgresql data-warehouse memory

10
推荐指数
1
解决办法
4493
查看次数

如何将行作为参数传递给 Postgres 函数?

我有一个函数 build_details(),它将另一个表中的单行/记录作为其参数之一。

这是我想要做的,但它不起作用:

SELECT build_details(
    SELECT * FROM my_table LIMIT 1,
    1000,
    TRUE)
Run Code Online (Sandbox Code Playgroud)

我想从 my_table 中取出一行并将其传递给函数,以便我可以运行它。如何使用 my_table 中的记录从终端调用该函数?

postgresql

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

用户活动记录的架构设计

我正在设计一个模式来支持用户活动的日志记录,用户必须能够搜索:

  • 跨所有事件(任何类型的事件),具有日期时间范围,按用户名;
  • 跨一种类型的事件,与上述相同,另外还有该模块的参数。

我创建了这个架构:

在此处输入图片说明

并设计查询以进行搜索:

  • 在所有事件中:

    SELECT extract(epoch from log_time) * 1000,
      u.username,
      CASE WHEN l.event_type IN (0, 2) THEN e.template
        WHEN l.event_type = 1 THEN format(e.template, ecs.field)
        WHEN l.event_type = 3 THEN format(e.template, ess.field)
        WHEN l.event_type = 4 THEN format(e.template, ect.ip, ect.port)
      END
    FROM logs l
    JOIN users u ON u.id = l.user_id
    JOIN event_def e ON e.id = l.event_type
    LEFT JOIN event_client_search ecs ON ecs.log_id = l.id
    LEFT JOIN event_switch_search ess ON ess.log_id = l.id
    LEFT JOIN event_cable_test …
    Run Code Online (Sandbox Code Playgroud)

postgresql database-design

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