2009-07-17 21 views
1

與我以前的問題相關: PHP and Databases: Views, Functions and Stored Procedures performance 只是爲了提出一個關於大型SELECT查詢的更具體的問題。PHP&Postgres:查看與選擇,何時使用視圖?

什麼時候會使用,而不是在代碼編寫SELECT查詢,稱這是一個瀏覽更方便:

$connector->query($sql)->fetchAll(); 

什麼是決定羯羊它最好的時候,用一個考慮的因素查看,或只是保持原樣。比方說,如果您加入多個表格,請選擇一定數量的數據等。

我在詢問大型網絡應用程序(使用PHP & Postgres)並尋找性能和優化。

回答

1

一兩件事,當你使用的是PHP源代碼+視圖(而不是僅PHP源代碼),考慮到的是,你現在有2種來源,當你更新你的應用程序修改:

  • 你必須把服務器
  • 在新的PHP源,必須更新視圖

而你有時必須做恰好在同一時間,如果你不想讓你的應用程序崩潰...或者你必須編程思考應用程序必須運行正常與過時/更新版本的意見(幾秒鐘)。

您可能需要考慮的其他問題是版本控制:版本控制PHP腳本很簡單:只需使用SVN及其所有權,因爲它是文本文件。 有了看法,爲了獲得相同類型的版本,你必須使用文本文件(在數據庫生產服務器上更新它們之前在SVN上提交),並使它們與數據庫服務器保持同步 - 看起來很簡單,但這不是當你必須將緊急補丁推到生產中時^^

Personnaly,當它真的有區別時,我通常使用視圖/存儲過程:例如,如果計算需要數以千計的SQL查詢(並且,數以千計的來自PHP的電話,等待響應等等)或兩臺服務器之間的數據交換過多,使用存儲過程可能會非常棒!

(從來沒有用過postgre,但這個想法和其他產品一樣)