質問形式の要件を念頭に置いて、記事に基づいたタイトルのオプションをいくつか示します。 **直接的かつ簡潔:** * **ハッシュ パーティショニングが日時列に対して非効率的であるのはなぜですか?**

DDD
リリース: 2024-10-25 04:35:29
オリジナル
918 人が閲覧しました

Here are a few title options based on your article, keeping in mind the requirement for a question format:

**Direct & Concise:**

* **Why is Hash Partitioning Inefficient for Datetime Columns?**
* **How to Optimize Table Partitioning for Datetime Columns

日時列のテーブル パーティション化の最適化

日時列によるテーブルのパーティション化は、クエリのパフォーマンスを向上させるための一般的な方法です。ただし、制限を理解し、適切なパーティショニング方法を選択することが重要です。

ハッシュ パーティショニングの落とし穴

年間通算日の値に基づくハッシュ パーティショニング (提供された例のように) パーティションのプルーニングができないため、datetime 列には最適ではない可能性があります。つまり、特定の日付のデータをクエリする場合でも、クエリ エンジンはすべてのパーティションをスキャンし、パフォーマンスの利点が減少します。

推奨アプローチ

INTEGER Column forパーティション プルーニング:

パーティション プルーニングを有効にするには、TO_DAYS(DATE()) の値を格納する追加の INTEGER 列を作成できます。これにより、日付範囲に基づいた効率的なクエリが可能になります。

RANGE パーティショニング:

または、RANGE パーティショニングを使用して、日付範囲に基づいてデータをさまざまなパーティションに割り当てることができます。この方法により、クエリ中に関連するパーティションのみがアクセスされるようになり、パフォーマンスが大幅に向上します。

RANGE パーティショニングの例:

次のクエリは、RANGE パーティショニングを示します:

CREATE TABLE raw_log_2011_4 (...)
PARTITION BY RANGE( TO_DAYS(ftime) ) (
  PARTITION p20110401 VALUES LESS THAN (TO_DAYS('2011-04-02')),
  ...
  PARTITION p20110430 VALUES LESS THAN (TO_DAYS('2011-04-31')),
  PARTITION future VALUES LESS THAN MAXVALUE
);
ログイン後にコピー

現在、

SELECT * FROM raw_log_2011_4 WHERE ftime = '2011-04-03';
ログイン後にコピー

のようなクエリはパーティション p20110403 のみを利用するため、クエリの効率が向上します。

以上が質問形式の要件を念頭に置いて、記事に基づいたタイトルのオプションをいくつか示します。 **直接的かつ簡潔:** * **ハッシュ パーティショニングが日時列に対して非効率的であるのはなぜですか?**の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!