我正在構建一個報告應用程序,因此我正在處理大量的數據。我以靈活的方式創建應用程序的一部分方法是使用SQL視圖消除數據庫的壓力,如果多個用戶都在匆忙中。2個部分的SQL故事 - SQL視圖總是很好,我該如何解決這個例子?
一個例子是:
mysql_query("CREATE VIEW view_silverpop_clicks_baby_$email AS SELECT view_email_baby_position.EmailAddress, view_email_baby_position.days, silverpop_campaign_emails.id, silverpop_actions.`Click Name` , silverpop_actions.`Mailing Id`
FROM silverpop_actions
INNER JOIN view_email_baby_position ON (silverpop_actions.Email = view_email_baby_position.EmailAddress) , silverpop_campaign_emails
WHERE silverpop_campaign_emails.id = $email
AND view_email_baby_position.days
BETWEEN silverpop_campaign_emails.low
AND silverpop_campaign_emails.high
AND silverpop_actions.`Event Type` = 'Click Through'") or die(mysql_error());
再後來在腳本這一觀點被用來計算點擊該電子郵件的特殊風味已數。
$sql = "SELECT count(*) as count FROM `view_silverpop_clicks_baby_$email` WHERE `Click Name` LIKE '$countme%'";
我的問題是兩個部分真:
- 是意見總是好的?你能 有太多?
- 我可以創建另一組 視圖來緩存 中的count變量的第二個代碼片段。如果是的話 我怎麼能這樣做呢?我不能 相當這樣做。
謝謝!
由於很多用戶的意見,視圖將不會消耗DB的任何壓力。 它只是一個邏輯結構來隱藏查詢的複雜性。 – Khb 2009-12-01 11:41:55
我的觀點被緩存 - 這意味着它們加速數據交付的速度非常快嗎? – MrFidge 2009-12-01 11:43:12
查詢執行計劃被緩存而不是數據本身。要緩存數據,您需要索引或物化視圖。 – Goran 2009-12-01 11:52:40