@db.VarChar(n) の使用
Optimizeは、PostgreSQLで@db.VarChar(n)
型を使用することによって引き起こされるパフォーマンス問題を特定し、解決するための推奨事項を提供します。
@db.VarChar(n)
ネイティブ型が Item
モデルの name フィールドで使用されています。
model Item {
// ...
name String @db.VarChar(1)
// ...
}
これが問題である理由
@db.VarChar(n)
型はコンテンツの最大長を n
に制限するため、アプリケーションによって適切に管理されていない場合、本番環境で予期せぬ問題を引き起こす可能性があります。PostgreSQLでは、varchar(n)
は text
と同じように動作し、varchar(n)
に対して追加の最適化は提供されません。そのため、両者の選択はパフォーマンスよりも慣習の問題となります。