2013-10-18 24 views
2

說我有3個表:SQL - 使用標誌VS連接查詢來獲取相關記錄

reviews | paid, received_feedback (booleans)
payments | review_id
feedback | review_id

難道是值得的性能跳轉到執行(僞SQL證明):

select from reviews where paid = 1

VS

select from reviews, joins payments where payments.review_id = reviews.id

+0

你說你有兩張1:N關係的表嗎?在第二個表中,您將付款與狀態一起存儲。像表1是「購買」和表2是「支付」,每個支付有一定的狀態? – hol

+0

@hol我已更新澄清。我有3個表:「評論」,「付款」,「反饋」。我的問題是值得使用「評論」表上的標誌(審查,支付)與執行連接查詢? –

回答

2

我敢肯定會有用標記列

性能跳你是對的:丟棄通常加入提高性能

但它是值得的麻煩呢?

這取決於您自己決定:如果您的程序必須處理的記錄數量巨大,並且您必須經常進行處理,那麼添加標記是有意義的。否則,將標誌保持在正確的狀態將是持續的維護責任。

您還應該考慮程序花費維護這些標誌的時間:如果標誌經常變化,這次可能會減少首先引入標誌所帶來的節省。

+0

謝謝,你給了我一些思考。 –