ホームページ >データベース >mysql チュートリアル >大規模なデータセットの場合、整数インデックス作成は DateTime インデックス作成より高速ですか?

大規模なデータセットの場合、整数インデックス作成は DateTime インデックス作成より高速ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 11:36:02866ブラウズ

 Is Integer Indexing Faster Than DateTime Indexing for Large Datasets?

MySQL インデックスの比較: Integer と DateTime

これまでの議論ではインデックスを作成せずに Timestamp フィールドと DateTime フィールド タイプを比較しましたが、この調査では特に次の点に焦点を当てています。数百万のレコードを持つ InnoDB テーブルのインデックス付き int に対するインデックス付き DateTime のパフォーマンス。

これらのシナリオでは、次の条件に基づくクエリが実行されます。

  1. インデックス付き DateTime: DateTime 列のインデックスを利用します。
  2. int withindex: DateTime 値の整数 (UNIX タイムスタンプ) 表現のインデックスを利用します。

実験的評価

MySQL 5.1.41 と 1,000 万レコードを使用した初期テストでは、int の速度の顕著な利点が実証されました。

Query DateTime with Index (sec) int with Index (sec)
COUNT(*) 120.27 25.02
BETWEEN 8.41 1.56

説明

int の効率は、インデックスをクエリ条件と直接比較できるため、MySQL が日付を解析して変換する必要がなくなりました。対照的に、DateTime では、日付と時刻のコンポーネントを抽出して比較するために追加の処理が必要です。

追加の考慮事項

同じテーブルに格納された両方のフィールド タイプを使用した後続のテストでは、同様の結果が得られました。

結論

これらの結果に基づいて、日付と時刻を保存することが推奨されます。インデックスベースのクエリのパフォーマンスが最も重要な場合は、int (UNIX タイムスタンプ) として使用します。この最適化により、特に日付ベースの条件が頻繁に使用される大規模なデータベースで、クエリの実行時間を大幅に短縮できます。

以上が大規模なデータセットの場合、整数インデックス作成は DateTime インデックス作成より高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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