相當theoritical的問題,但在一個較長的發展長期重要:MySQL的程序開發,而不是發送大查詢
方案A(一般情況):
- 我建立我的查詢客戶端側,並將它們發送到服務器。 (由PHP,Perl,任何)
- 優點:更快的開發,因爲查詢字符串只建立在客戶端,並且可以很容易修改(代碼必須在客戶端修改)。 CRUD可以很容易地開發OO(面向對象)。
- 缺點:如果查詢更大,更相似,我必須發送長查詢字符串,如果重複,我應該更好地準備它們以節省網絡負載。 (例如執行大量INSERT語句的導入腳本/應用程序)。
方案B:
- 我創造了一些常用的程序,以獲取或我的表,其中有一些通用的輸入參數創建數據,並通過他們建立查詢字符串在服務器上側。
- 優點:我發送一個簡短的查詢字符串到服務器的參數,低網絡負載。
- 缺點:開發需要更長的時間,創造概念來推廣查詢,客戶必須瞭解程序及其版本。
意見?這是真的還是假的,我總結的是什麼?有人有過這方面的經驗?
您是否考慮過任何一種情況下的安全問題? – jsalonen 2013-04-27 22:46:11
不是真的在第一輪計劃中......但通過程序過濾以避免mysql注入也是一個好主意,我猜...因爲通過過程包裝所有輸入參數可能是一個簡單的開發增強,或者不? – StrictLine 2013-04-28 13:17:37
@ALL ANSWERER:我的想法是生成數據庫操作代碼(ALTER TABLE,CREATE PROCEDURE等),併爲(網絡)應用工程師提供管理後端界面來設計它們。在這種情況下,可維護性在情景A和情景B中具有相同的複雜度級別,但是抽象的位置和級別是不一樣的...... – StrictLine 2013-04-28 13:39:29