私はパーティションテーブルと非パーティションテーブルの間でパフォーマンステストを行います。

ここには2つのテーブルの両方が

200百万

のデータを含んでいます。

PS PostgreSQLでテーブルパーティションを行う方法がわからない場合は、PostgreSQLのパーティションテーブル(Partition Table)を参照してください。数百万のデータをシミュレートしてテストするために

PostgreSQL(Simulate Millions Data)のパーティションテーブル

を参照してください。

指定日のパフォーマンステスト

--partition table

SELECT **  FROM hashvalue__PT WHERE hashtime = DATE '2008-08-01'

--non partition table
SELECT **  FROM hashvalue WHERE hashtime = DATE '2008-08-01'

ここでは、100万〜200百万のデータのパフォーマンステストの結果を示します。

パフォーマンス結果を拡大するには、画像をクリックしてください。

リンク://wp-content/uploads/2008/07/performance-test-on-partition-table-postgresql-1.JPG[

パフォーマンステスト時のパーティションテーブルのpostgresql-1

]

  • 両方に200万のデータが含まれている場合、指定された日付で検索すると、パーティションテーブルはより高速になり、非パーティションテーブルの場合は約144.45%**

指定された日付の検索 “2008-08-01″検索されたレコード= 741825パーティションテーブル= 359.61秒非パーティションテーブル= 879.062秒

範囲日付のパフォーマンステスト同じ月

--partition table

SELECT **  FROM hashvalue__PT WHERE hashtime> = DATE '2008-05-01' AND hashtime <= '2008-05-15';

--non partition table
SELECT **  FROM hashvalue WHERE hashtime >= DATE '2008-05-01' AND hashtime <= '2008-05-15';

ここでは、100万〜200百万のデータのパフォーマンステストの結果を示します。

パフォーマンス結果を拡大するには、画像をクリックしてください。

リンク://wp-content/uploads/2008/07/performance-test-on-partition-table-postgresql-2.JPG[

パフォーマンステスト時のパーティションテーブルのpostgresql-2

]

  • 両方に200万のデータが含まれている場合、同じ月に範囲の日付を検索すると、パーティションテーブルがより高速になり、非パーティションテーブルの約209.84%が**

「2008-05-01」から「2008-05-15」までの範囲内の日付を同じ月に検索します。取得レコード= 11112338パーティションテーブル= 603.328秒非パーティションテーブル= 1869.375秒

範囲日付月間のパフォーマンステスト

--partition table

SELECT **  FROM hashvalue__PT WHERE hashtime> = DATE '2008-06-20' AND hashtime <= '2008-07-10';

--non partition table
SELECT **  FROM hashvalue WHERE hashtime >= DATE '2008-06-20' AND hashtime <= '2008-07-10';

ここでは、100万〜200百万のデータのパフォーマンステストの結果を示します。

パフォーマンス結果を拡大するには、画像をクリックしてください。

リンク://wp-content/uploads/2008/07/performance-test-on-partition-table-postgresql-3.JPG[

パフォーマンステスト時のパーティションテーブルのpostgresql-3

]

  • 両方に200万のデータが含まれている場合、範囲の日付と十字月を検索すると、パーティションテーブルがより高速で、非パーティションテーブルの場合は約39.97%**

「2008-06-20」から「2008-07-10」までの範囲の日付と十字月を検索します。取得されたレコード= 12220658パーティションテーブル= 1310.766秒非パーティションテーブル= 1834.743秒

結論

パーティションと非パーティションテーブルの間のいくつかのパフォーマンステストの後、結果は明らかに、パーティションテーブルは完全にこのパフォーマンステストで勝利です。