MySQL で文字列の日付の代わりに時間を使用することにしましたが、それが良い考えかどうかを知りたいです。たとえば、私は使用します:
1268557200
それ以外の:
Sun, 14 Mar 2010 09:00:00 GMT
ありがとう。
もちろんスペシャルタイプの方がいいです。データベースは、そのようなタイプ向けに最適化されています。たとえば、文字列には非常に多くの文字があり、日付型は内部的に int または long であり、4 または 8 バイトしかかかりません。
一般に、格納しようとしているデータを最も厳密に表す型を使用するのが最も理にかなっています。つまり、データが日付指向の場合は、日付指向のフィールドを使用します。これらは数値として内部的に保存され、文字列よりもアクセス、保存、並べ替えなどが断然高速です。利点は、(in と out の両方で) 文字列であるかのようにアクセスできることですが、それらは数値のように機能し、並べ替えます。
重要な点は、クエリで日付計算を使用しないことです。SQL を作成する前に、コードで計算 (日数の足し算、時間の引き算など) を行います。これにより、インデックスやクエリ キャッシングなどを最大限に活用できます。日付計算を SQL に残すことを回避できるいくつかの最適化がありますが、落とし穴がどこにあるかは明らかではないかもしれません。したがって、実行していることが最適化されていることが確実にわかっていない限り、経験則として、SQL から計算を除外することをお勧めします。