Ali*_*eza 64 postgresql performance parallelism query-performance
在最新版本的 PostgreSQL 中(截至 2013 年 12 月),我们能否在两个或多个内核之间共享查询以提高性能?还是我们应该获得更快的内核?
小智 56
不,对于 v9.6 之前的 PostgreSQL 版本。请参阅PostgreSQL 常见问题:PostgreSQL如何使用 CPU 资源?
PostgreSQL 服务器是基于进程的(非线程)。每个数据库会话连接到单个PostgreSQL 操作系统 (OS)进程。多个会话由操作系统自动分布在所有可用的 CPU 上。操作系统还使用 CPU 来处理磁盘 I/O 和运行其他非数据库任务。客户端应用程序可以使用线程,每个线程都连接到一个单独的数据库进程。
由于9.6版本,部分某些查询可以并行运行,在单独的操作系统进程,允许使用多个CPU内核的。默认情况下,并行查询在版本 10 (max_parallel_workers_per_gather) 中启用,在未来版本中预计会增加并行性。
小智 9
不,但有一个解决方法。:)
我找到了 parsel (parallel select) PL/pgSQL function,它根据主键拆分您的查询,然后通过 dblink 扩展连接到数据库并等待所有子查询。
| 归档时间: |
|
| 查看次数: |
73338 次 |
| 最近记录: |