私は、オブジェクトへのアクセス権などの複数のテーブルを含むSQLクエリを書くための最良のパターンや方法を理解しようとしています。私が探している結果を得ることができますが、これがベストプラクティスかどうかを知りたいのです。「SELECT IN」ピラミッドは良い練習ですか?
例:
SELECT * FROM windows WHERE id IN(
SELECT `window` FROM window_groups WHERE `group` IN(
SELECT DISTINCT `group` FROM user_groups WHERE `user` = 1
)
)
質問:このSELECT IN()
"ピラミッド" をお勧めますか?
基本的には何も悪くありません。しかし、 "それは良い習慣である"ということは、データがどの程度巨大であるかに密接に依存している。 – cFreed
@cFreed ok cool、大規模なデータセットの場合は 'view'を使うことを検討すべきですか? –
@ JordanDavisビューではパフォーマンスの向上は認められません。マテリアライズド・ビューは可能です。 – GuiSim