メインコンテンツへスキップ

`timestamp(0)` または `timestamptz(0)` の使用

Optimizeは、PostgreSQLで`@db.Timestamp(0)`および`@db.Timestamptz(0)`ネイティブ型を使用することによって引き起こされるパフォーマンス問題を特定し、解決するための推奨事項を提供します。

`@db.Timestamp(0)`および`@db.Timestamptz(0)`ネイティブ型は、以下の`User`モデル内で使用されています

model User {
// ...
date DateTime @db.Timestamp(0)
deletedAt DateTime @db.Timestamptz(0)
// ...
}

これが問題となる理由

精度が`0`の`@db.Timestamp(n)`または`@db.Timestamptz(n)`列を使用すると、データベースは時間を最も近い整数秒に丸めるため、予期しない結果につながる可能性があります。

たとえば、`15:30:45.678`のような現在の時刻をこの精度の列に挿入すると、`15:30:46`に切り上げられます。この動作により、記録された時刻が元の時刻と比較して最大0.5秒未来に表示される可能性があり、正確な時刻の精度が重要である場合には驚くかもしれません。

© . All rights reserved.