PostgreSQLが32bitか64bitか今すぐ確認!OS別の簡単チェック方法

データベース・SQL

「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)

タスクマネージャーで確認

  1. Ctrl + Shift + Escでタスクマネージャーを開く
  2. 詳細」タブをクリック
  3. postgres.exe」を探す
  4. プロセス名に「(32ビット)」がなければ64bit版

見分け方:

  • postgres.exe → 64bit版
  • postgres.exe (32ビット) → 32bit版

インストールフォルダで確認

64bit版の場所:

C:\Program Files\PostgreSQL\

32bit版の場所:

C:\Program Files (x86)\PostgreSQL\

Program Files **(x86)**にあれば32bit版の可能性大!

レジストリで確認

  1. Windows + Rで「regedit」を実行
  2. 以下のパスを確認:
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環境での確認

  1. pgAdminを起動
  2. サーバーに接続
  3. サーバーを右クリック → 「Properties
  4. Binary paths」タブを確認
  5. パスに「Program Files (x86)」があれば32bit版

ダッシュボードで確認

  1. サーバーを選択
  2. Dashboard」タブ
  3. Server activity」セクション
  4. 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版を使っている場合の対策:

  1. 64bit版への移行を検討
  2. メモリ設定を32bit制限内で最適化
  3. インデックスの見直し

ビット数確認のベストプラクティス

定期的な確認タイミング

  • 新規インストール時:必ず確認
  • 拡張機能追加前:互換性チェック
  • パフォーマンス問題発生時: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パフォーマンス最適化テクニック

コメント

タイトルとURLをコピーしました