小编Jua*_*oto的帖子

如何确定PostgreSQL中是否有[空闲连接]未提交的事务?

根据我对 PostgreSQL 9.2 中的空闲连接问题的评论,一些未提交的事务(可能与其中一些空闲连接有关)可能会导致一些性能问题。

确定是否存在未提交的事务的好方法是什么(如果有办法知道它们所在的连接是否空闲,则加分)?

非常感谢!

postgresql performance database-design

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

如何最好地将 SQLAlchemy 中的连接池用于 PgBouncer 事务级池?

使用 SQLAlchemy 查询 PgBouncer 后面的 PostgreSQL 数据库,使用事务级池。

用于这种设置的最佳模式是什么?我应该每个进程有一个引擎,使用ConnectionPool,还是应该NullPool为每个请求创建一个引擎,并为每个请求使用?我应该使用完全不同的模式吗?

非常感谢!如果需要更多信息,请告诉我,我会尽快更新。

postgresql python

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

过多的空闲连接会影响 PostgreSQL 9.2 的性能吗?

我的数据库服务器上的一些查询似乎需要很长时间才能响应,而且我认为 CPU 使用率很高。运行时ps aux,我看到大约 250 个“空闲”连接(我认为太多了)。我还没有开始做一个完整的诊断,但我想知道这是否是一个开始寻找的好地方。

我还将 PgBouncer 与事务级池一起使用。我怀疑我可以idle通过调整池大小轻松减少连接数。但是,除非有充分的理由,否则我不想开始做太多更改。

idlePostgreSQL 9.2 中的很多连接会影响性能吗?

非常感谢!

postgresql performance database-design query-performance

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

将数据从一个 Cassandra ColumnFamily 复制到同一个 Keyspace 上的另一个(如 SQL 的 INSERT INTO)的好方法是什么?

试图找到一种方法来轻松地将所有行从 Cassandra ColumnFamily/Table 转移到另一个。

COPY我了解,该命令是一个不错的选择。但是,由于它将所有数据转储到.csv磁盘上,然后将其重新加载,我不禁想知道是否有更好的方法在引擎中执行此操作。

我的意思的一个具体例子是INSERT * FROM my_table INTO my_other_table在许多SQL数据库中可用。当然,我意识到 Cassandra 是 NoSQL,因此不会以相同的方式工作 - 但它似乎是可用的。

什么是实现这一目标的好方法?

非常感谢!

nosql migration cassandra

12
推荐指数
2
解决办法
3万
查看次数

PostgreSQL 如何对磁盘上的新记录进行物理排序(在主键上的集群之后)?

需要知道 PostgreSQL 如何在磁盘上订购记录。在这种情况下,我想利用文档中所述索引组合,据我所知,它使用位图来获取匹配的行并根据它们的物理位置返回它们。有问题的表已按其主键聚集在一起。

据我了解,在集群完成后,PostgreSQL 不会自动继续进行集群(尽管它确实记得它是根据某个索引进行集群的)。现在,由于这是主键,我想知道物理存储顺序是否会根据它(如果是真的,我想利用我们的优势来进行特定查询)。

综上所述,PostgreSQL 如何对其新记录进行排序,尤其是在聚类之后?

非常感谢!

postgresql index database-design clustered-index physical-design

9
推荐指数
1
解决办法
2292
查看次数

使用多个并发进程时如何提高 PostgreSQL 的性能?

在我们的 Python 应用程序上看到查询性能并不令人满意,该应用程序运行多个SQLAlchemy core用于访问 PostgreSQL 9.2 数据库的进程。我们可能有大约 100-200 个或更多并发进程对数据库执行查询

我们没有像pgpoolIIpgbounce当前安装的连接池系统。

我测试了查询,可以采取的顺序1-10秒,从我们的应用程序,它运行在何时psql最多20毫秒

我们认为这个问题与并发连接有关,特别是因为上述行为,并且因为我们在访问系统中的不同表时看到这些性能下降。但是,我们对此并不确定,可以很容易地接受替代建议或解决方案。

处理来自单个数据库服务器的多个进程的并发连接的常用方法是什么,以使查询能够快速执行?

postgresql concurrency

6
推荐指数
1
解决办法
4441
查看次数

PgBouncer 是否为每个数据库配置条目创建一个单独的池?

如果我设置了一个包含多个数据库条目的 pgbouncer.ini 配置文件,pgBouncer 是否会为每个条目创建一个单独的池?我会这么认为,但无法证实这一点。

例如,有这样的事情:

[数据库]
db1 = ...
db2 = ...

[pgbouncer]

.
.
.
max_client_conn = 480

default_pool_size = 250

每个数据库的默认池为 250 个最大为 480 个,还是总共250 个默认和最大 480 个连接在两者之间共享?

非常感谢!

postgresql database-design max-connections pgbouncer

6
推荐指数
1
解决办法
5705
查看次数

确定我对 PostgreSQL 服务器的期望性能的好方法是什么?

试图弄清楚我应该如何期望我的数据库执行。基本上,我需要确定我设置的服务器何时达到其性能限制 - 这将帮助我更好地规划服务器扩展。

这个问题更多地针对我可以计算或估计(实际上,任何想法都很好)预期性能的方法。理想情况下,这应该可以帮助我想出一个可以基于多个因素(如记录大小、行数等)运行的公式,而不是基于特定服务器/数据库的主观假设。

那么,确定 PostgreSQL 服务器的预期性能的好方法是什么?

非常感谢!

postgresql performance database-design

6
推荐指数
1
解决办法
208
查看次数

如何正确配置 PostgreSQL RAM 使用率?

使用 PostgreSQL,我们有数百个并发进程进行常规数据库访问。我们的数据分布在多个数据库服务器上,每个服务器都有一个与 PgBouncer 的连接池。问题在于所有服务器上的 RAM 使用率(通过top- 不确定这是否是确定这一点的最佳方法)往往会攀升至接近或 100%。我很确定这很糟糕。

我已经尝试了 pgbouncer / postgres 的几种配置,最终(在我的系统运行几分钟后)RAM 使用量上升到这一点。

我的问题是:

  1. 我应该在不同的服务器上设置我的连接池作为数据库吗?似乎同一台服务器上有很多打开的连接可能导致这种情况。
  2. 一般来说,Postgres 上 RAM 使用的好指南是什么?我真的不知道如何判断服务器是否表现良好/是否符合预期。

非常感谢!如果需要更多信息,请告诉我,我会尽快发布。

编辑: 运行 vmstat 1 一段时间后,我得到以下信息:

procs -----------内存----------- ---swap--- -----io---- --system--- -----cpu -----
 rb swpd 免费 buff 缓存 si so bi bo in cs us sy id wa st
 0 34 241048 20124 10208 2636248 340 80 1820 2968 3846 2864 12 14 0 73 1
 0 56 240980 19256 10224 2636860 360 140 2568 6100 5773 4874 …

postgresql database-design memory

5
推荐指数
1
解决办法
2132
查看次数