SlideShare a Scribd company logo
PostgreSQL Query Cache 
“pqc” 
2011/2/25 
アップタイム・テクノロジーズ 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
pqc概要 
• PostgreSQLへの問い合わせをキャッシングすることで、SQL問い合わ 
せのパフォーマンスを「劇的に(10~100倍)」改善する。 
– PostgreSQLへの問い合わせを中継する。 
– 異なるポート上で接続を待ち受けている(デフォルトでは9999) 
– SELECTクエリの結果をキャッシュする(クエリキャッシュ)。 
– キャッシュのライフサイクル管理を行う。 
PostgreSQL 
クライアント 
PostgreSQLサーバ 
pqcd 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. 
PostgreSQL 
バックエンド 
キャッシュメモリ
外部仕様 
• シンプルクエリ実行とPreparedStatementをサポートする 
– プロトコルはバージョン3のみサポート 
• アクティブキャッシュモード 
– 基本的にすべてのSELECTクエリの結果をキャッシュする。 
– 指定した特定のSELECTクエリの結果はキャッシュしない。 
• パッシブキャッシュモード 
– 基本的にクエリの結果をキャッシュしない。 
– 指定した特定のSELECTクエリの結果のみをキャッシュする。 
– 指定した実行時間を越えたクエリの結果をキャッシュする(未実装) 
• キャッシュインバリデーション(無効化) 
– キャッシュ有効期限の指定によるクエリキャッシュ無効化 
– 特定のクエリを指定することによるクエリキャッシュ無効化 
– すべてのクエリキャッシュの無効化(未実装) 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
導入手順 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. 
• 必要なライブラリ 
– libevent 1.4.14b (memcachedが使用) 
– memcached 1.4.5 
– libmemcached 0.43 
• インストール 
– automake 
– ./configure --prefix=$PREFIX 
– make 
– sudo make install 
– cd $PREFIX/etc 
– cp pqcd_hba.conf.sample pqcd_hba.conf 
• 起動 
– $PREFIX/bin/pqcd (daemon mode) 
– $PREFIX/bin/pqcd –n –d (debug mode) 
• 終了 
– $PREFIX/bin/pqcd stop (daemon mode) 
– <CTRL+C> (debug mode)
導入手順(RPMから) 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. 
• 必要なRPM 
– uqc-libevent-1.4.14b-1.i386.rpm 
– uqc-memcached-1.4.5-1.i386.rpm 
– uqc-libmemcached-0.43-1.i386.rpm 
– uqc-querycache-20110223-1.i386.rpm 
• 設定ファイル 
– /opt/uptime/querycache/etc/pqcd.conf 
– /opt/uptime/querycache/etc/pqcd_hba.conf 
• 起動 
– /opt/uptime/querycache/bin/pqcd 
• 終了 
– /opt/uptime/querycache/bin/pqcd stop
設定オプション 
• 必要に応じてpqcd.conf の設定を行います($PREFIX/etc にあります) 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. 
• memcached_bin 
– Memcachedの実行ファイルのパス名(デフォルトは 
“/opt/uptime/querycache/bin/memcached” ) 
• query_cache_mode 
– クエリキャッシュモード。“active” または“passive” を指定(デフォルトは“active” ) 
• query_cache_expiration 
– キャッシュの有効期限を秒数で指定(デフォルトは30)
キャッシュ制御ヒント文 
• SELECT文の先頭にコメントとして付加する。 
– /* cache:refresh */SELECT * FROM … 
– <slash> <asterrisk> <space> <hint> <space> <asterisk> <slash> 
• cache:on (アクティブモードのデフォルト) 
– キャッシュを参照する。無ければクエリを実行してキャッシュに乗せる。 
• cache:off (パッシブモードのデフォルト) 
– キャッシュを参照しない。かつ、キャッシュに乗せない。 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. 
• cache:refresh 
– キャッシュを参照しない。クエリを実行してキャッシュに乗せる。 
• cache:expire 
– キャッシュを無効化する。クエリは実行しない。(未実装) 
• cache:expireall 
– すべてのクエリのキャッシュを無効化する。クエリは実行しない。(未実装)
実行例 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
通常の実行とキャッシュヒット時 
通常の実行時間は 
400ミリ秒 
クエリキャッシュによって 
2度目は0.5ミリ秒で完了 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
キャッシュ制御用ヒント文 
意図的にキャッシュを 
無視するヒント文 
長い実行時間 
ヒント文を外すと 
クエリキャッシュを使う 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
データ更新とキャッシュ 
レコードを全件削除 
レコードを削除しても 
キャッシュを使うため、 
古い値が見える 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
キャッシュのリフレッシュ(最新化) 
キャッシュ更新用の 
ヒント文で 
キャッシュを最新化 
キャッシュの内容が 
更新されている 
キャッシュヒット 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
【お問い合わせ先】 
アップタイム・テクノロジーズ合同会社 
E-mail: contact@uptime.jp 
Web: http://www.uptime.jp/ 
TEL: 050-3585-7837 
FAX: 03-5770-7883 
Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.

More Related Content

PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
PDF
忙しい人の5分で分かるDocker 2017年春Ver
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
PDF
DockerとPodmanの比較
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
忙しい人の5分で分かるDocker 2017年春Ver
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
アーキテクチャから理解するPostgreSQLのレプリケーション
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
DockerとPodmanの比較

What's hot (20)

PDF
Vacuum徹底解説
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
PDF
Dockerからcontainerdへの移行
PDF
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
PDF
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
PDF
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PDF
TripleOの光と闇
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PDF
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PDF
PostgreSQLアーキテクチャ入門
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
DPDKによる高速コンテナネットワーキング
PDF
3分でわかるAzureでのService Principal
PDF
Githubを使って簡単に helm repoを公開してみよう
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
PostgreSQLレプリケーション(pgcon17j_t4)
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
Vacuum徹底解説
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Dockerからcontainerdへの移行
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
TripleOの光と闇
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLアーキテクチャ入門
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
DPDKによる高速コンテナネットワーキング
3分でわかるAzureでのService Principal
Githubを使って簡単に helm repoを公開してみよう
コンテナの作り方「Dockerは裏方で何をしているのか?」
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
Ad

Viewers also liked (16)

PDF
pgstattuple2: デッドタプル推定のための統計的手法
PDF
Uptime Database Appliance テクノロジープレビュー
PDF
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
PDF
PDF
PostgreSQL安定運用のコツ2009 @hbstudy#5
PDF
「今そこにある危機」を捉える ~ pg_stat_statements revisited
PDF
Postgres Toolkitのご紹介
PDF
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
PDF
PL/Pythonで独自の集約関数を作ってみる
PDF
PostgreSQLバックアップの基本
PDF
PostgreSQLセキュリティ総復習
PDF
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PDF
Ranking system by Elasticsearch
PDF
いまさら聞けないPostgreSQL運用管理
PDF
まずやっとくPostgreSQLチューニング
PDF
In-Database Analyticsの必要性と可能性
pgstattuple2: デッドタプル推定のための統計的手法
Uptime Database Appliance テクノロジープレビュー
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
PostgreSQL安定運用のコツ2009 @hbstudy#5
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Postgres Toolkitのご紹介
BigDataを迎え撃つ! PostgreSQL並列分散ミドルウェア「Stado」の紹介と検証報告
PL/Pythonで独自の集約関数を作ってみる
PostgreSQLバックアップの基本
PostgreSQLセキュリティ総復習
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Ranking system by Elasticsearch
いまさら聞けないPostgreSQL運用管理
まずやっとくPostgreSQLチューニング
In-Database Analyticsの必要性と可能性
Ad

Similar to PostgreSQL Query Cache - "pqc" (20)

PDF
Webサーバのチューニング
PDF
Azure Synapse Analytics 専用SQL Poolベストプラクティス
PPTX
CAメインフレーム システムリソース削減に貢献する製品について
PDF
Intro2 Sqlanalyzer
PDF
MySQL 初めてのチューニング
KEY
Web Operations and Perl kansai.pm#14
PDF
Jjug springセッション
KEY
Mysql casial01
PDF
過去事例から学ぶ SharePoint パフォーマンス問題とその対策
PDF
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
PPT
プロとしてのOracleアーキテクチャ入門 ~番外編~
PDF
CakePHP2.0 performance, upgrade shell
PDF
20181004 cndjp vitess
PDF
[DI15] Build 2017 Updates ~ Azure Database for MySQL/PostgreSQL 最速紹介
PPT
HandlerSocket plugin for MySQL
PDF
What's new in open shift container platform 4.7 japan_20210318
PDF
20180706_VxRailCC_ワークショップ編_NW
PDF
C16 45分でわかるPostgreSQLの仕組み by 山田努
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
PDF
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
Webサーバのチューニング
Azure Synapse Analytics 専用SQL Poolベストプラクティス
CAメインフレーム システムリソース削減に貢献する製品について
Intro2 Sqlanalyzer
MySQL 初めてのチューニング
Web Operations and Perl kansai.pm#14
Jjug springセッション
Mysql casial01
過去事例から学ぶ SharePoint パフォーマンス問題とその対策
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
プロとしてのOracleアーキテクチャ入門 ~番外編~
CakePHP2.0 performance, upgrade shell
20181004 cndjp vitess
[DI15] Build 2017 Updates ~ Azure Database for MySQL/PostgreSQL 最速紹介
HandlerSocket plugin for MySQL
What's new in open shift container platform 4.7 japan_20210318
20180706_VxRailCC_ワークショップ編_NW
C16 45分でわかるPostgreSQLの仕組み by 山田努
tcpdump & xtrabackup @ MySQL Casual Talks #1
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009

PostgreSQL Query Cache - "pqc"

  • 1. PostgreSQL Query Cache “pqc” 2011/2/25 アップタイム・テクノロジーズ Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 2. pqc概要 • PostgreSQLへの問い合わせをキャッシングすることで、SQL問い合わ せのパフォーマンスを「劇的に(10~100倍)」改善する。 – PostgreSQLへの問い合わせを中継する。 – 異なるポート上で接続を待ち受けている(デフォルトでは9999) – SELECTクエリの結果をキャッシュする(クエリキャッシュ)。 – キャッシュのライフサイクル管理を行う。 PostgreSQL クライアント PostgreSQLサーバ pqcd Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. PostgreSQL バックエンド キャッシュメモリ
  • 3. 外部仕様 • シンプルクエリ実行とPreparedStatementをサポートする – プロトコルはバージョン3のみサポート • アクティブキャッシュモード – 基本的にすべてのSELECTクエリの結果をキャッシュする。 – 指定した特定のSELECTクエリの結果はキャッシュしない。 • パッシブキャッシュモード – 基本的にクエリの結果をキャッシュしない。 – 指定した特定のSELECTクエリの結果のみをキャッシュする。 – 指定した実行時間を越えたクエリの結果をキャッシュする(未実装) • キャッシュインバリデーション(無効化) – キャッシュ有効期限の指定によるクエリキャッシュ無効化 – 特定のクエリを指定することによるクエリキャッシュ無効化 – すべてのクエリキャッシュの無効化(未実装) Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 4. 導入手順 Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. • 必要なライブラリ – libevent 1.4.14b (memcachedが使用) – memcached 1.4.5 – libmemcached 0.43 • インストール – automake – ./configure --prefix=$PREFIX – make – sudo make install – cd $PREFIX/etc – cp pqcd_hba.conf.sample pqcd_hba.conf • 起動 – $PREFIX/bin/pqcd (daemon mode) – $PREFIX/bin/pqcd –n –d (debug mode) • 終了 – $PREFIX/bin/pqcd stop (daemon mode) – <CTRL+C> (debug mode)
  • 5. 導入手順(RPMから) Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. • 必要なRPM – uqc-libevent-1.4.14b-1.i386.rpm – uqc-memcached-1.4.5-1.i386.rpm – uqc-libmemcached-0.43-1.i386.rpm – uqc-querycache-20110223-1.i386.rpm • 設定ファイル – /opt/uptime/querycache/etc/pqcd.conf – /opt/uptime/querycache/etc/pqcd_hba.conf • 起動 – /opt/uptime/querycache/bin/pqcd • 終了 – /opt/uptime/querycache/bin/pqcd stop
  • 6. 設定オプション • 必要に応じてpqcd.conf の設定を行います($PREFIX/etc にあります) Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. • memcached_bin – Memcachedの実行ファイルのパス名(デフォルトは “/opt/uptime/querycache/bin/memcached” ) • query_cache_mode – クエリキャッシュモード。“active” または“passive” を指定(デフォルトは“active” ) • query_cache_expiration – キャッシュの有効期限を秒数で指定(デフォルトは30)
  • 7. キャッシュ制御ヒント文 • SELECT文の先頭にコメントとして付加する。 – /* cache:refresh */SELECT * FROM … – <slash> <asterrisk> <space> <hint> <space> <asterisk> <slash> • cache:on (アクティブモードのデフォルト) – キャッシュを参照する。無ければクエリを実行してキャッシュに乗せる。 • cache:off (パッシブモードのデフォルト) – キャッシュを参照しない。かつ、キャッシュに乗せない。 Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved. • cache:refresh – キャッシュを参照しない。クエリを実行してキャッシュに乗せる。 • cache:expire – キャッシュを無効化する。クエリは実行しない。(未実装) • cache:expireall – すべてのクエリのキャッシュを無効化する。クエリは実行しない。(未実装)
  • 8. 実行例 Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 9. 通常の実行とキャッシュヒット時 通常の実行時間は 400ミリ秒 クエリキャッシュによって 2度目は0.5ミリ秒で完了 Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 10. キャッシュ制御用ヒント文 意図的にキャッシュを 無視するヒント文 長い実行時間 ヒント文を外すと クエリキャッシュを使う Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 11. データ更新とキャッシュ レコードを全件削除 レコードを削除しても キャッシュを使うため、 古い値が見える Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 12. キャッシュのリフレッシュ(最新化) キャッシュ更新用の ヒント文で キャッシュを最新化 キャッシュの内容が 更新されている キャッシュヒット Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.
  • 13. 【お問い合わせ先】 アップタイム・テクノロジーズ合同会社 E-mail: contact@uptime.jp Web: http://www.uptime.jp/ TEL: 050-3585-7837 FAX: 03-5770-7883 Copyright 2010-2011 Uptime Technologies, LLC. All rights reserved.

Editor's Notes

  • #10: [snaga@devwa02 src]$ /opt/pgsql/901/bin/psql -p 9999 -h localhost -U uptime testdb psql (9.0.1, server 8.3.6) WARNING: psql version 9.0, server version 8.3. Some psql features might not work. Type &amp;quot;help&amp;quot; for help. testdb=# \\timing Timing is on. testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 617.948 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 3.236 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 455.847 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.916 ms testdb=# DELETE FROM pgbench_accounts; DELETE 1000000 Time: 11798.786 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.485 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2039.547 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 1.870 ms testdb=# /* cache:refresh */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 128.099 ms testdb=# SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2.491 ms testdb=#
  • #11: [snaga@devwa02 src]$ /opt/pgsql/901/bin/psql -p 9999 -h localhost -U uptime testdb psql (9.0.1, server 8.3.6) WARNING: psql version 9.0, server version 8.3. Some psql features might not work. Type &amp;quot;help&amp;quot; for help. testdb=# \\timing Timing is on. testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 617.948 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 3.236 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 455.847 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.916 ms testdb=# DELETE FROM pgbench_accounts; DELETE 1000000 Time: 11798.786 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.485 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2039.547 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 1.870 ms testdb=# /* cache:refresh */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 128.099 ms testdb=# SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2.491 ms testdb=#
  • #12: [snaga@devwa02 src]$ /opt/pgsql/901/bin/psql -p 9999 -h localhost -U uptime testdb psql (9.0.1, server 8.3.6) WARNING: psql version 9.0, server version 8.3. Some psql features might not work. Type &amp;quot;help&amp;quot; for help. testdb=# \\timing Timing is on. testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 617.948 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 3.236 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 455.847 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.916 ms testdb=# DELETE FROM pgbench_accounts; DELETE 1000000 Time: 11798.786 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.485 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2039.547 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 1.870 ms testdb=# /* cache:refresh */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 128.099 ms testdb=# SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2.491 ms testdb=#
  • #13: [snaga@devwa02 src]$ /opt/pgsql/901/bin/psql -p 9999 -h localhost -U uptime testdb psql (9.0.1, server 8.3.6) WARNING: psql version 9.0, server version 8.3. Some psql features might not work. Type &amp;quot;help&amp;quot; for help. testdb=# \\timing Timing is on. testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 617.948 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 3.236 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 455.847 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.916 ms testdb=# DELETE FROM pgbench_accounts; DELETE 1000000 Time: 11798.786 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 2.485 ms testdb=# /* cache:off */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2039.547 ms testdb=# SELECT count(*) FROM pgbench_accounts; count --------- 1000000 (1 row) Time: 1.870 ms testdb=# /* cache:refresh */SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 128.099 ms testdb=# SELECT count(*) FROM pgbench_accounts; count ------- 0 (1 row) Time: 2.491 ms testdb=#