ホームページ >データベース >mysql チュートリアル >MySQL の整数インデックスと DateTime インデックス作成: 日付範囲クエリではどちらが高速ですか?

MySQL の整数インデックスと DateTime インデックス作成: 日付範囲クエリではどちらが高速ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-25 23:36:281051ブラウズ

  Integer vs. DateTime Indexing in MySQL: Which is Faster for Date Range Queries?

MySQL の最適化: パフォーマンスのための整数インデックスと DateTime インデックス作成

大規模データベースではクエリ効率が非常に重要です。 MySQL で日時データのインデックスを作成する場合、整数 (「INT」) と DateTime フィールドのどちらを選択するかが問題になります。

パフォーマンスに関する考慮事項

パフォーマンスに関しては、初期テストが必要です。 InnoDB テーブルに 1,000 万件のレコードがある場合、条件が日付範囲に基づいている場合、INT インデックス作成に大きな利点があることがわかります。クエリの範囲が広い場合でも、INT を使用すると実行時間が短縮されることがわかります。

テスト結果

  • カウント クエリ:

    SQL_NO_CACHE COUNT(*) FROM `tbl_int` (INT): 25.02 sec
    SQL_NO_CACHE COUNT(*) FROM `tbl_dt` (DateTime): 2 min 10.27 sec
  • 範囲クエリ:

    SQL_NO_CACHE COUNT(*) FROM `tbl_int` (INT): 1.56 sec
    SQL_NO_CACHE COUNT(*) FROM `tbl_dt` (DateTime): 8.41 sec

観測

  • UNIX 時間を事前に計算すると、INT のパフォーマンスが大幅に向上します。
  • DateTime フィールドと INT フィールドの両方が同じテーブルに存在する場合、MySQL はクエリを最適化するようです。
  • 全体的に、INT インデックス作成は、日付範囲クエリの方が高速であることが証明されています。

以上がMySQL の整数インデックスと DateTime インデックス作成: 日付範囲クエリではどちらが高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。