0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PostgreSQLのパーティション設計ミスで性能劣化した話(本番でハマった実例)

0
Last updated at Posted at 2026-05-23

実際に本番環境で性能問題が発生した事例です。
原因は、パーティションテーブルの設計ミスでした。

PostgreSQLのマニュアルに、以下の記載があります。
「100個までのパーティションでうまく動作します」

後で分かったことですが、サイジングが誤っており、
800億件を想定した設計になっていました。

その結果、「アクセス効率」ではなく、
「パーティション数を減らすこと」が優先され、
以下をパーティションキーにしていました。

・xxxコードをハッシュ化してyyy分割した値
※私はインフラ担当でした。

パーティション設計で最も重要なのは、「どの条件で検索されるか」です。

パーティションテーブルは、
不要なデータを検索対象から除外するための仕組みです。

しかし、検索条件と無関係なキーでパーティション分割すると、
複数パーティションを検索する必要があり、
性能改善につながりません。

結果として、
複数パーティションを毎回検索する状態になっていました。

さらに厄介なのは、本番後に性能問題が発生した場合、
「なぜこの設計にしたのか」を後から読み解く必要があることです。

■ポイント

パーティションキーは、「データを均等に分散する」だけでなく、
「どの条件で検索されるか」を考慮して設計する必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?