2014-12-06 41 views
0

我可能是個小問題,但我敢問,請幫我回答這個問題。在MySQL中使用多個數據庫查詢對比單個數據庫查詢

我一直在開發一個PHP Mysql應用程序。此前,我曾經使用下列原則:通過檢查每個輸入

  • 如果成功的

    1. 驗證HTML表單通過JavaScript在PHP
    2. 錯誤校驗,通過一個單一的MySQL查詢
    3. 更新數據庫現在

    ,我下面另一種方法如下:

    1. 沒有JavaScript驗證,BU噸使用required屬性中的形式,其中輸入是必要
    2. 每個在PHP輸入元件的
    3. 錯誤驗證和同時更新數據庫

    因此,在第二方法中,我使用的,我提出多種MySQL查詢(大約30個查詢)用於每一行更新。

    我知道,它可能不會導致最佳的性能,但,

    1. 它已經通過ATLEAST 3(如果不是更多)的因子減小的代碼行的數目。
    2. 這是非常容易的開發,調試和協作
    3. 開發時間要少得多(我自己的估計,到5倍)

    我想在第二個方法你的想法,我目前正在使用我的應用程序。

  • +1

    如果你正在更新一個表格,我個人認爲你的問題越少越好,但那是因爲我是一個懶惰的人,這反映在我的編碼中,因爲我不想再做更多的事情比一次或兩次。我可能是完全錯誤的,除了學習和開發以外,我從未接受任何認證,也沒有深入過。爲什麼不嘗試混合的方法 - 使用'require',但仍然構建1個查詢? – Jhecht 2014-12-06 06:58:29

    回答

    0

    你幾乎回答了你自己的問題我想,你基本上是說,我在十字路口,我可以選擇執行30個查詢的腳本,或者多一點工作,它可以是1個查詢。

    我認爲這是一個不行。使用發送的值構建查詢語句更有效率。也是最佳實踐,因爲大多數情況下,您無法預測應用程序的增長情況。

    我也喜歡html驗證,儘管瀏覽器仍然以不同的方式處理。由於我的大部分項目都涉及到使用jQuery,我傾向於使用jquery.validate插件,這需要額外幾行才能獲得對用戶交互非常有用的即時響應表單。當然,服務器端驗證應始終存在。

    1

    我覺得這裏的困惑是2分,

    1. 代碼開發力度和可讀性
    2. 性能

    一般來說,代碼開發和可讀性優先於性能。這種方法通常適用於小規模應用。由於小規模應用程序不會面臨嚴重的性能問題。

    但是,當應用程序增長的大小,然後1查詢與30查詢將顯示差異。想象一下,如果100-1000位用戶使用您的應用程序並且使用您的第一種方法,那麼您將啓動100-1000個查詢,但使用第二種方法,您將在數據庫上激發3000-30000個查詢。

    這可能會減慢整個應用程序。至於沒有。查詢成正比,

    1. 連接池限制
    2. DB鎖定時間(1個查詢將鎖定行對於小時間x但30倍的查詢將鎖定一行30X時間)

    在最壞情況下,如果你的應用程序有其他形式,從DB讀取的模塊,那麼這些查詢將遭受鎖定問題。

    爲了獲得更好的性能和可擴展性,更少沒有。的更新查詢應該是首選的,如果它們幾乎沒有編碼開銷。其他jQuery模塊可用於驗證,這也將減少編碼工作量。