ベストプラクティスは、常にすることです。 3NFから始めて、特定のパフォーマンスの問題を見つけた場合にのみ非正規化を検討してください。
パフォーマンスは1つです あなたがデータベースに対処しなければならない問題の。データを複製すると、データベースに一貫性のないデータが存在する可能性があり、リレーショナルデータベースのコア原則の1つである一貫性(C
)が無効になります。 ACID
で )。
はい、参加にはコストがかかります。それを回避することはできません。ただし、通常、コストは思ったよりもはるかに低く、ネットワークの送信時間などの他の要因によって圧倒されることがよくあります。関連する列に適切なインデックスが付けられていることを確認することで、これらのコストの多くを回避できます。
そして、最適化のマントラを覚えておいてください:測定、推測しないでください! そして、本番環境のような環境で測定します。そして維持 定期的な測定(および調整)-最適化は設定されたものであり、スキーマとデータが変更されない場合は操作を忘れます(ほとんどありません)。
パフォーマンスの復帰は、通常、一貫性を維持するためにトリガーを使用することで安全にできます。もちろん、これにより更新の速度は低下しますが、それでも選択の実行が速くなる可能性があります。