「PostgreSQLって32bit?64bit?どっちがインストールされてる?」 「メモリを4GB以上使いたいのに、制限がかかっている気がする…」 「拡張機能をインストールしたいけど、ビット数が合わないとエラーが出る」
こんな疑問や問題に直面していませんか?
実は、PostgreSQLのビット数(32bit/64bit)は、パフォーマンスや機能に大きな影響を与えるんです。
この記事を読めば、どのOSでも5秒で確認できるようになります。さらに、32bitと64bitの違いや、アップグレード方法まで完全網羅!
32bitと64bitって何が違うの?

簡単に理解する3つの違い
1. 使えるメモリの量
- 32bit: 最大4GBまで(実質3.5GB程度)
- 64bit: 理論上16EB(エクサバイト)まで
つまり、64bitならメモリ制限を気にせず大規模データベースを扱えます!
2. 処理性能
- 32bit: 一度に32ビット(4バイト)のデータを処理
- 64bit: 一度に64ビット(8バイト)のデータを処理
車に例えると、32bitが「軽自動車」、64bitが「大型トラック」。運べる荷物の量が全然違います。
3. 互換性
- 32bit PostgreSQL: 32bit/64bit OSで動作可能
- 64bit PostgreSQL: 64bit OSでのみ動作
どっちを使うべき?
64bitを選ぶべき理由:
- データベースサイズが1GB以上
- 同時接続数が多い
- 複雑なクエリを実行する
- 最新の機能を使いたい
32bitでも十分な場合:
- 古いシステムとの互換性が必要
- 小規模な個人利用
- メモリが少ない古いPC
2024年現在、99%の場合は64bit版を選ぶべきです!
方法1:SQLコマンドで確認(最速・全OS共通)
最も簡単な確認方法
PostgreSQLに接続して、以下のコマンドを実行:
-- バージョンとビット数を同時に確認
SELECT version();
結果の例(64bit):
PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.0, 64-bit
結果の例(32bit):
PostgreSQL 15.3 on i686-pc-linux-gnu, compiled by gcc (GCC) 11.3.0, 32-bit
見るべきポイント:
- 最後に「64-bit」とあれば64bit版
- 最後に「32-bit」とあれば32bit版
- 「x86_64」は64bitの意味
- 「i686」や「i386」は32bitの意味
より詳細な情報を取得
-- ワードサイズを確認
SHOW server_version;
-- コンパイル情報を確認
SELECT current_setting('server_version');
方法2:Windowsでの確認方法
コマンドプロンプトから確認
-- PostgreSQLのバージョン確認
"C:\Program Files\PostgreSQL\15\bin\postgres.exe" --version
64bit版の表示:
postgres (PostgreSQL) 15.3 (64-bit)
タスクマネージャーで確認
- Ctrl + Shift + Escでタスクマネージャーを開く
- 「詳細」タブをクリック
- 「postgres.exe」を探す
- プロセス名に「(32ビット)」がなければ64bit版
見分け方:
postgres.exe
→ 64bit版postgres.exe (32ビット)
→ 32bit版
インストールフォルダで確認
64bit版の場所:
C:\Program Files\PostgreSQL\
32bit版の場所:
C:\Program Files (x86)\PostgreSQL\
Program Files **(x86)**にあれば32bit版の可能性大!
レジストリで確認
- Windows + Rで「regedit」を実行
- 以下のパスを確認:
HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\
「Base Directory」の値を見て、インストール先を確認。
方法3:Linux/Unixでの確認方法
コマンドラインから確認
# PostgreSQLバイナリのアーキテクチャを確認
file /usr/bin/postgres
64bit版の表示:
/usr/bin/postgres: ELF 64-bit LSB executable, x86-64
32bit版の表示:
/usr/bin/postgres: ELF 32-bit LSB executable, Intel 80386
psqlコマンドで確認
# psqlのビット数を確認
psql --version
# より詳細な情報
ldd $(which postgres) | grep libc
パッケージマネージャーで確認
Debian/Ubuntu:
dpkg -l | grep postgresql
# アーキテクチャ列を確認(amd64 = 64bit, i386 = 32bit)
RedHat/CentOS:
rpm -qi postgresql-server | grep Architecture
方法4:macOSでの確認方法
ターミナルから確認
# PostgreSQLの情報を表示
file /usr/local/bin/postgres
結果の例:
/usr/local/bin/postgres: Mach-O 64-bit executable x86_64
Homebrewでインストールした場合
# インストール情報を確認
brew info postgresql
# アーキテクチャを確認
lipo -info /usr/local/bin/postgres
Apple Siliconの場合:
Architectures in the fat file: postgres are: x86_64 arm64
方法5:pgAdminから確認
GUI環境での確認
- pgAdminを起動
- サーバーに接続
- サーバーを右クリック → 「Properties」
- 「Binary paths」タブを確認
- パスに「Program Files (x86)」があれば32bit版
ダッシュボードで確認
- サーバーを選択
- 「Dashboard」タブ
- 「Server activity」セクション
- 「Version」情報に64-bitまたは32-bitの記載
メモリ使用量から判断する方法
32bitの制限を確認
-- shared_buffersの設定値を確認
SHOW shared_buffers;
-- work_memの設定を確認
SHOW work_mem;
-- 最大接続数を確認
SHOW max_connections;
32bitの典型的な制限:
- shared_buffersが1GB以下
- 全体のメモリ使用量が3.5GB以下
メモリ関連のエラーメッセージ
32bit版でよく見るエラー:
ERROR: out of memory
DETAIL: Failed on request of size 536870912
このエラーが頻発する場合、32bit版の可能性があります。
32bitから64bitへの移行方法
なぜ移行すべき?
パフォーマンス向上の実例:
- クエリ実行速度:平均30%向上
- 大量データ処理:2〜5倍高速化
- メモリ使用効率:制限なし
移行手順
1. データのバックアップ
pg_dumpall -U postgres > backup.sql
2. 64bit版をインストール
- 別のポート番号で起動(例:5433)
3. データを復元
psql -U postgres -p 5433 < backup.sql
4. 設定ファイルを調整
-- 64bit版なら大きな値に設定可能
ALTER SYSTEM SET shared_buffers = '4GB';
ALTER SYSTEM SET work_mem = '256MB';
5. 動作確認後、切り替え
トラブルシューティング
問題1:拡張機能がインストールできない
症状:
ERROR: incompatible library: 32-bit/64-bit mismatch
解決方法: PostgreSQLと同じビット数の拡張機能をインストール
問題2:ODBCドライバーが動かない
確認方法:
# Windowsの場合
odbcad32.exe
32bit ODBCと64bit ODBCは別物!両方インストールが必要な場合も。
問題3:パフォーマンスが悪い
32bit版を使っている場合の対策:
- 64bit版への移行を検討
- メモリ設定を32bit制限内で最適化
- インデックスの見直し
ビット数確認のベストプラクティス
定期的な確認タイミング
- 新規インストール時:必ず確認
- 拡張機能追加前:互換性チェック
- パフォーマンス問題発生時:32bit制限の可能性
- システム移行時:新旧環境の比較
確認結果の記録
-- システム情報を記録用テーブルに保存
CREATE TABLE system_info AS
SELECT
version() as pg_version,
current_setting('shared_buffers') as shared_buffers,
current_setting('server_version_num') as version_num,
CURRENT_TIMESTAMP as checked_at;
まとめ:もうビット数で迷わない!
今日マスターした確認方法を整理しましょう:
✅ SELECT version()が最速・最簡単(全OS共通) ✅ x86_64 = 64bit、i686/i386 = 32bit ✅ WindowsはProgram Files (x86)にあれば32bit ✅ Linuxはfileコマンドで即確認 ✅ 64bit版を強く推奨(メモリ制限なし) ✅ 32bitから64bitへの移行は意外と簡単
ビット数の確認は、一見地味な作業です。
でも、これを知っているかどうかで、データベースのパフォーマンスが天と地ほど違うことがあります。特に大規模なデータを扱う場合は必須の知識!
今すぐ確認して、もし32bit版を使っていたら、64bit版への移行を検討してみてください。
きっとPostgreSQLの真の力を実感できるはずです!
次のステップにおすすめ:
- PostgreSQLのメモリチューニング完全ガイド
- 32bitから64bitへの安全な移行手順
- PostgreSQLパフォーマンス最適化テクニック
コメント